TensorFlow 1.x Protobuf Inference
Inference code for protobufs in TensorFlow 1.x:
import numpy as np import tensorflow as tf def load_graph(frozen_graph_filename): # We load the protobuf file from the disk and parse it to retrieve the # unserialized graph_def with tf.gfile.GFile(frozen_graph_filename, "rb") as f: graph_def = tf.GraphDef() graph_def.ParseFromString(f.read()) # Then, we import the graph_def into a new Graph and returns it with tf.Graph().as_default() as graph: # Be careful about the name here, if set to some value, all node names will change. tf.import_graph_def(graph_def, name="") return graph graph = load_graph("frozen_graph_full.pb") input_tensor = graph.get_tensor_by_name('lowres_input:0') output_tensor = graph.get_tensor_by_name('inference/output/slice/BilateralSliceApply:0') with tf.Session(graph=graph) as sess: y_out = sess.run(output_tensor, feed_dict={input_tensor: np.random.rand(1, 512, 512, 3)}) print(y_out)