В настоящее время я пытаюсь экспортировать обучаемую модель TensorFlow в качестве файла ProtoBuf, чтобы использовать ее с API TensorFlow С++ на Android. Поэтому я использую freeze_graph.py
script.
Я экспортировал свою модель с помощью tf.train.write_graph
:
tf.train.write_graph(graph_def, FLAGS.save_path, out_name, as_text=True)
и я использую контрольную точку, сохраненную с помощью tf.train.Saver
.
Я вызываю freeze_graph.py
, как описано в верхней части script. После компиляции я запускаю
bazel-bin/tensorflow/python/tools/freeze_graph \
--input_graph=<path_to_protobuf_file> \
--input_checkpoint=<model_name>.ckpt-10000 \
--output_graph=<output_protobuf_file_path> \
--output_node_names=dropout/mul_1
Это дает мне следующее сообщение об ошибке:
TypeError: Cannot interpret feed_dict key as Tensor: The name 'save/Const:0' refers to a Tensor which does not exist. The operation, 'save/Const', does not exist in the graph.
Как и в случае ошибок, у меня нет тензора save/Const:0
в моей экспортируемой модели. Однако код freeze_graph.py
говорит, что это имя тензора можно указать флагом filename_tensor_name
. К сожалению, я не могу найти никакой информации о том, каким должен быть этот тензор и как правильно установить его для моей модели.
Может кто-нибудь сказать мне, как создать тензор save/Const:0
в моей экспортированной модели ProtoBuf или как правильно установить флаг filename_tensor_name
?