Ошибка ввода: не удалось получить размеры ввода.
Флаг командной строки должен быть --input_arrays
, а не --input_array
.(Множественное число вместо единственного числа).То же самое --output_arrays
вместо --output_array
.Это должно решить вашу ошибку.Таким образом, команда должна быть:
IMAGE_SIZE=224
toco \
--input_file=frozen_mobilenet_v2.pb \
--output_file=optimized_graph.lite \
--input_format=TENSORFLOW_GRAPHDEF \
--output_format=TFLITE \
--input_shape=10,${IMAGE_SIZE},${IMAGE_SIZE},3 \
--input_arrays=input \
--output_arrays=MobilenetV2/Predictions/Softmax \
--inference_type=FLOAT \
--input_data_type=FLOAT
Дополнительный совет отладки
Для дальнейшего использования, если все ваши флаги верны, то следующим шагом будет проверка того, что ваши имена входного и выходного тензоров соответствуютправильный.Вы можете попытаться визуализировать входные и выходные данные вашего графика в Tensorboard или преобразовать в pbtxt следующим образом, а затем прочитать его:
import tensorflow as tf
path_to_pb = '...'
output_file = '...'
g = tf.GraphDef()
with open(path_to_pb, 'rb') as f:
g.ParseFromString(f.read())
with open(output_file, 'w') as f:
f.write(str(g))