Я повторно обучил модель классификации изображений mobilenet-v1 из Tensorflow Hub и преобразовал ее с помощью toco для вывода с помощью Tensorflow Lite.
Однако, когда я запускаю вывод с использованием модели tflite, требуется другой размер ввода, отличный от того, который я указал с помощью --input_shape
.
Как я могу повторно обучить квантованную модель mobilenetv1 на моих собственных данных?
Вот шаги, которые я предпринял:
- Загрузите набор обучающих данных из tensorflow для поэтов codelab
Переобучить квантованную модель мобильной сети v1 на концентраторе TF с использованием набор данных выше
python retrain.py \ --bottleneck_dir="${IMAGE_DIR}"/tf_files/bottlenecks/ \ --how_many_training_steps=1000 \ --model_dir="${IMAGE_DIR}"/tf_files/models/mobilenet_v1_050_224 \ --summaries_dir="${IMAGE_DIR}"/tf_files/training_summaries/mobilenet_v1_050_224/ \ --output_graph="${IMAGE_DIR}"/tf_files/retrained_mobilenet_v1_050_224.pb \ --output_labels="${IMAGE_DIR}"/tf_files/retrained_labels.txt \ --tfhub_module=https://tfhub.dev/google/imagenet/mobilenet_v1_050_224/quantops/classification/1 \ --image_dir="${IMAGE_DIR}"/tf_files/flower_photos
Убедитесь, что модель правильно обучена и имя тензора ввода / вывода верное
python label_image.py \ --graph="${IMAGE_DIR}"/tf_files/retrained_mobilenet_v1_050_224.pb \ --labels="${IMAGE_DIR}"/tf_files/retrained_labels.txt \ --input_layer=Placeholder \ --output_layer=final_result \ --input_height=224 --input_width=224 \ --image="${IMAGE_DIR}"/tf_files/flower_photos/daisy/21652746_cc379e0eea_m.jpg
Преобразуйте модель в tflite
toco \ --input_file="${IMAGE_DIR}"/tf_files/retrained_mobilenet_v1_050_224.pb \ --output_file="${IMAGE_DIR}"/tf_files/mobilenet_v1_050_224_quant.tflite \ --input_format=TENSORFLOW_GRAPHDEF \ --output_format=TFLITE \ --input_shape=1,224,224,3 \ --input_array=Placeholder \ --output_array=final_result \ --inference_type=QUANTIZED_UINT8 \ --input_data_type=FLOAT
Хотя я указал --input_shape=1,224,224,3
, при выполнении вывода я получил ошибку:
java.lang.IllegalArgumentException: DataType (1) of input data does not match with the DataType (3) of model inputs.