Преобразовать вывод retrain.py в tenorflow.js

Сценарий retrain.py, описанный в разделе " Как восстановить классификатор изображений для новых категорий", был запущен как

python retrain.py --tfhub_module https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/feature_vector/2 --image_dir /tmp/test

и произвел выходной файл /tmp/output_graph.pb, Преобразование этого с

tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model /tmp/output_graph.pb /tmp/model

не удалось с

Ошибка ввода-вывода: файл SavedModel не существует по адресу: /tmp/output_graph.pb/ndomsaved_model.pbtxt|saved_model.pb}

Если файл output_graph.pb переименован в saved_model.pb ( от @edkeveked) ошибка меняется на

RuntimeError: MetaGraphDef, связанный с тегами 'serve', не найден в SavedModel. Для проверки доступных наборов тегов в SavedModel, пожалуйста, используйте CLI SavedModel: saved_model_cli

saved_model_cli show --dir . сообщает о пустом наборе тегов.

Как это можно исправить?

2 ответа

Решение

Как подсказал @Ping Yu в Обнаружении изображений Retrain с MobileNet, вы можете использовать

python retrain.py --tfhub_module https://tfhub.dev/google/imagenet/mobilenet_v2_100_224/feature_vector/2 \
    --image_dir /tmp/flower_photos --saved_model_dir /tmp/saved_retrained_model
tensorflowjs_converter --input_format=tf_saved_model \
    --output_format=tfjs_graph_model \
    --saved_model_tags=serve \
    /tmp/saved_retrained_model/ /tmp/converted_model/

Это сохраняет модель, используя сохраненный формат модели.

Путь ввода - это путь к папке, а не к файлу. Учтите следующее:

tensorflowjs_converter --input_format=tf_saved_model --output_format=tfjs_graph_model /tmp /tmp/model
Другие вопросы по тегам