2017-10-31 3 views
0

Nach this answer, kann ich die MetaGraph aus einem SavedModel extrahieren, dann die GraphDef s MetaGraph‘einfrieren und dann das freeze_graph.py Skript auf diesem GraphDef laufen die .pb verwendbar in Android zu bekommen. Meine Frage: Wie genau extrahiere ich die MetaGraph (und dann die GraphDef)? Weil tf.saved_model.loader.load(sess, [tag_constants.SERVING], <model_path>) eine MetaGraphDef anstelle einer MetaGraph zurückgibt.Tensorflow - Wie friert man ein .pb aus dem SavedModel ein, um es in TensorFlowInferenceInterface zu inferen?

Antwort

1

Ich habe es gerade bekommen. Es stellte sich heraus, nachdem die Tensorflow Version Entfernen ich von conda bekam und es mit dem aus pip ersetzen, konnte ich dies nur tun:

from tensorflow.python.tools import freeze_graph 
from tensorflow.python.saved_model import tag_constants 

input_saved_model_dir = "F:/python_machine_learning_codes/estimator_exported_model/1509418513" 
output_node_names = "softmax_tensor" 
input_binary = False 
input_saver_def_path = False 
restore_op_name = None 
filename_tensor_name = None 
clear_devices = False 
input_meta_graph = False 
checkpoint_path = None 
input_graph_filename = None 
saved_model_tags = tag_constants.SERVING 

freeze_graph.freeze_graph(input_graph_filename, input_saver_def_path, 
          input_binary, checkpoint_path, output_node_names, 
           restore_op_name, filename_tensor_name, 
           output_graph_filename, clear_devices, "", "", "", 
           input_meta_graph, input_saved_model_dir, 
          saved_model_tags) 

Der aus conda-forge unvollständig war, und sogar mit dem pip installieren, hatte ich um die freeze_graph.py und die saved_model_utils von tensorflow-master zu kopieren. Außerdem wird der Code von oben meistens von der freeze_graph_test.py kopiert.

Verwandte Themen