TensorFlow freeze_graph.py: Der Name 'save / Const: 0' bezieht sich auf einen Tensor, der nicht existiert

Ich versuche derzeit, ein trainiertes TensorFlow-Modell als ProtoBuf-Datei zu exportieren, um es mit der TensorFlow C ++ - API unter Android zu verwenden. Deshalb benutze ich dasfreeze_graph.py Skript

Ich exportierte mein Modell mittf.train.write_graph:

tf.train.write_graph(graph_def, FLAGS.save_path, out_name, as_text=True)

und ich verwende einen mit @ gespeicherten Checkpoitf.train.Saver.

Ich rufe auffreeze_graph.py wie oben im Skript beschrieben. Nach dem Kompilieren starte ich

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

Dies gibt mir die folgende Fehlermeldung:

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.

Wie der Fehler besagt, habe ich keinen Tensorsave/Const:0 in meinem exportierten Modell. Der Code vonfreeze_graph.py sagt, dass man diesen Tensornamen durch das Flag @ angeben kafilename_tensor_name. Leider kann ich keine Informationen darüber finden, wie dieser Tensor aussehen soll und wie er für mein Modell richtig eingestellt wird.

Kann mir jemand sagen, wie man ein @ herstellsave/Const:0tensor in meinem exportierten ProtoBuf-Modell oder wie man das Flag setztfilename_tensor_name richtig?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage