Конвертировать замороженный график для tfLite для Coral с помощью tflite_convert - PullRequest
0 голосов
/ 24 марта 2019

Я использую MobileNetV2 и пытаюсь заставить его работать на Google Coral.Кажется, все работает, кроме Coral Web Compiler, выдает случайную ошибку, Uncaught application failure.Поэтому я думаю, что проблема заключается в необходимых промежуточных шагах.Например, я использую это с tflite_convert

tflite_convert \
  --graph_def_file=optimized_graph.pb \
  --output_format=TFLITE \
  --output_file=mobilenet_v2_new.tflite \
  --inference_type=FLOAT \
  --inference_input_type=FLOAT \
  --input_arrays=input \
  --output_arrays=final_result \
  --input_shapes=1,224,224,3

Что я не так делаю?

1 Ответ

2 голосов
/ 02 апреля 2019

Это наиболее вероятно, потому что ваша модель не квантована .Устройства Edge TPU в настоящее время не поддерживают вывод модели на основе числа с плавающей запятой. Для достижения наилучших результатов, вы должны включить квантование во время обучения (описано в ссылке) .Тем не менее, вы также можете применить квантование во время преобразования TensorFlow Lite.

С квантованием после обучения вы жертвуете точностью, но можете быстрее что-то проверить.Когда вы конвертируете свой график в формат TensorFlow Lite, установите inference_type на QUANTIZED_UINT8.Вам также необходимо применить параметры квантования (mean / range / std_dev) к командной строке.

tflite_convert \
  --graph_def_file=optimized_graph.pb \
  --output_format=TFLITE \
  --output_file=mobilenet_v2_new.tflite \
  --inference_type=QUANTIZED_UINT8 \
  --input_arrays=input \
  --output_arrays=final_result \
  --input_shapes=1,224,224,3 \
  --mean_values=128 --std_dev_values=127 \
  --default_ranges_min=0 --default_ranges_max=255

Затем вы можете передать квантованный файл .tflite компилятору модели .

Более подробную информацию о требованиях к модели Edge TPU можно найти в моделях TensorFlow на Edge TPU .

...