TensorFlow freeze_graph.py: O nome 'save / Const: 0' refere-se a um tensor que não existe
Atualmente, estou tentando exportar um modelo treinado do TensorFlow como um arquivo ProtoBuf para usá-lo com a API do TensorFlow C ++ no Android. Portanto, eu estou usando ofreeze_graph.py
roteiro.
Eu exportei meu modelo usandotf.train.write_graph
:
tf.train.write_graph(graph_def, FLAGS.save_path, out_name, as_text=True)
e estou usando um ponto de verificação salvo comtf.train.Saver
.
Eu invocofreeze_graph.py
conforme descrito na parte superior do script. Depois de compilar, eu corro
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
Isso me dá a seguinte mensagem de erro:
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.
Como o erro indica, não tenho um tensorsave/Const:0
no meu modelo exportado. No entanto, o código defreeze_graph.py
diz que é possível especificar esse nome de tensor pela bandeirafilename_tensor_name
. Infelizmente, não consigo encontrar nenhuma informação sobre qual deve ser esse tensor e como configurá-lo corretamente para o meu modelo.
Alguém pode me dizer como produzir umsave/Const:0
tensor no meu modelo ProtoBuf exportado ou como definir o sinalizadorfilename_tensor_name
corretamente?