Как преобразовать модель Pos eNet ResNet50 tf js в tflite? - PullRequest
2 голосов
/ 19 июня 2020

Я пытаюсь получить эту Pos eNet Модель ResNet50 работающую в Swift на iPhone XS. Для этого мне нужно преобразовать его в формат tflite. Поскольку мне не удалось найти прямого способа сделать это; Наиболее многообещающим решением представляется преобразование модели tf js в keras_saved_model с помощью tf js преобразователя , а затем преобразование его в tflite с помощью преобразователя TensorFlow Lite .

Мне трудно преобразовать в keras_saved_model. Вот что я пробовал и как воспроизвести ошибку:

  • Загрузите эту модель https://tfhub.dev/tensorflow/tfjs-model/posenet/resnet50/float/1/default/1
  • Откройте загруженную папку и переименуйте model-stride32.json в model.json
  • Вернитесь в родительскую папку и запустите tensorflowjs_wizard
  • Введите путь к модели (./posenet_resnet50_float_1_default_1)
  • Вы увидите ошибку, аналогичную этой:
Welcome to TensorFlow.js Converter.
? Please provide the path of model file or the directory that contains model files. 
If you are converting TFHub module please provide the URL.  ./posenet_resnet50_float_1_default_1
Traceback (most recent call last):
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/bin/tensorflowjs_wizard", line 8, in <module>
    sys.exit(pip_main())
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/site-packages/tensorflowjs/converters/wizard.py", line 590, in pip_main
    main([' '.join(sys.argv[1:])])
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/site-packages/tensorflowjs/converters/wizard.py", line 598, in main
    run(dry_run)
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/site-packages/tensorflowjs/converters/wizard.py", line 410, in run
    input_params[common.INPUT_PATH])
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/site-packages/tensorflowjs/converters/wizard.py", line 107, in detect_input_format
    if get_tfjs_model_type(filename) == common.TFJS_LAYERS_MODEL_FORMAT:
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/site-packages/tensorflowjs/converters/wizard.py", line 67, in get_tfjs_model_type
    data = json.load(f)
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/json/__init__.py", line 293, in load
    return loads(fp.read(),
  File "/Users/daniel/anaconda3/envs/tfjs-graph-converter/lib/python3.7/codecs.py", line 322, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

TensorFlow. js 1.7.2
TensorFlow 2.1.0
macOS Catalina 10.15.5

Я также создал этот выпуск GitHub .

Я ценю любую помощь в этом :) Большое спасибо!

...