Преобразование модели сегментации Mobilenet в tflite - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в Tensorflow, так что, прости меня за этот простой вопрос, но я не могу найти этот ответ где-либо еще. Я работаю над преобразованием модели сегментации мобильной сети (http://download.tensorflow.org/models/deeplabv3_mnv2_pascal_trainval_2018_01_29.tar.gz), обученной по набору данных Pascal, в Tensorflow-lite для мобильного вывода более недели, но безуспешно. Я не могу правильно определить формат ввода и вывода для преобразователя.

import tensorflow as tf
import numpy as np
img = tf.placeholder(name="Image", dtype=tf.float32, shape=(512,512,  3))
out = tf.placeholder(name="Output", dtype=tf.float32, shape=(512,512, 1))
localpb = 'frozen_inference_graph.pb'
tflite_file = 'retrained_graph_eyes1za.lite'
print("{} -> {}".format(localpb, tflite_file))
converter = tf.lite.TFLiteConverter.from_frozen_graph(
localpb, img, out
)
tflite_model = converter.convert()


open(tflite_file,'wb').write(tflite_model)

Но это приводит к большому количеству ошибок, подобных нетерпеливому исключению. Пожалуйста, скажите мне, как мне написать код для преобразования вышеуказанной модели Mobilenet в tflite.

1 Ответ

1 голос
/ 07 июля 2019

попробуйте это в командной строке или в командной оболочке bash Вы можете использовать любой из следующих двух способов

для тензорного потока, установленного из менеджера пакетов

python -m tensorflow.python.tools.optimize_for_inference \
--input=/path/to/frozen_inference_graph.pb \
--output=/path/to/frozen_inference_graph_stripped.pb \
--frozen_graph=True \
--input_names="sub_7" \
--output_names="ResizeBilinear_3"

сборка из источника

bazel build tensorflow/python/tools:optimize_for_inference
bazel-bin/tensorflow/python/tools/optimize_for_inference \
--input=/path/to/frozen_inference_graph.pb \
--output=/path/to/frozen_inference_graph_stripped.pb \
--frozen_graph=True \
--input_names="sub_7" \
--output_names="ResizeBilinear_3"

Надеюсь, что это работает !!

...