tenorflow lite: ошибка при преобразовании модели переобученного графа в облегченный формат - PullRequest
0 голосов
/ 29 апреля 2018

Выполненных шагов

Step1 - клонировать репозиторий git:

git clone https://github.com/googlecodelabs/tensorflow-for-poets-2

cd tensorflow-for-poets-2

Step2 - Загрузите обучающие изображения или соберите пользовательские изображения:

curl http://download.tensorflow.org/example_images/flower_photos.tgz \
    | tar xz -C tf_files

Step3 - установить размер изображения и архитектуру:

IMAGE_SIZE=224
ARCHITECTURE="mobilenet_0.50_${IMAGE_SIZE}"

Step4- Retrain модель

python -m scripts.retrain \
  --bottleneck_dir=tf_files/bottlenecks \
  --model_dir=tf_files/models/"${ARCHITECTURE}" \
  --summaries_dir=tf_files/training_summaries/"${ARCHITECTURE}" \
  --output_graph=tf_files/retrained_graph.pb \
  --output_labels=tf_files/retrained_labels.txt \
  --architecture="${ARCHITECTURE}" \
  --image_dir=tf_files/flower_photos

Шаг 5 - Используя переобученную модель, проверьте классифицирующее изображение

python -m scripts.label_image \
--graph=tf_files/retrained_graph.pb\ -- 
image=tf_files/flower_photos/daisy/3475870145_685a19116d.jpg

Время оценки (1 изображение): 0,281 с

маргаритка 0,725841 одуванчик 0.200525 тюльпанов 0,0411526 роз 0,0318613 подсолнухов 0,000619742

Шаг 6: Оптимизация модели

IMAGE_SIZE=224
toco \
  --input_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.pb \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TENSORFLOW_GRAPHDEF \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result

Step7 - Проверка оптимизированной модели классификации изображения

python -m scripts.label_image \
--graph=tf_files/optimized_graph.pb \
--image=tf_files/flower_photos/daisy/3475870145_685a19116d.jpg

Время оценки (1 изображение): 0,126 с

маргаритка 0,725845 одуванчик 0.200523 тюльпаны 0,0411517 розы 0,031861 подсолнухи 0,00061973

Step8 - преобразовать в модель в формат TFlite

IMAGE_SIZE=224
toco \
  --input_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.lite \
  --input_format=TENSORFLOW_GRAPHDEF \
  --output_format=TFLITE \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result \
  --inference_type=FLOAT \
  --input_type=FLOAT

Все еще получая проблему с 0-м вводом, должно быть 602112 байт, но найдено 150528 байт

Пожалуйста, дайте лучшее решение для преодоления / достижения этой проблемы, чтобы решить

1 Ответ

0 голосов
/ 02 августа 2018

Пытаясь делать это все утро, с 1.9 и выше (и, возможно, также с 1.8, еще не тестировали), вам нужно удалить поле --input_format и изменить параметр --input_file на --graph_def_file

Итак, вы получите команду, которая выглядит примерно так:

toco \
  --graph_def_file=tf_files/retrained_graph.pb \
  --output_file=tf_files/optimized_graph.lite \
  --output_format=TFLITE \
  --input_shape=1,${IMAGE_SIZE},${IMAGE_SIZE},3 \
  --input_array=input \
  --output_array=final_result \
  --inference_type=FLOAT \
  --inference_input_type=FLOAT

Затем я смог завершить пример поэтов и заставить мой файл tflite работать на Android.

Источник: https://github.com/googlecodelabs/tensorflow-for-poets-2/issues/68

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...