第一种,你可以直接使用得到的frozen graph推理;可以参考,可能需要改改:import tensorflow as tf

加载Frozen Graph

graph_def = tf.compat.v1.GraphDef()
with tf.io.gfile.GFile(“/path/to/frozen/graph.pb”, “rb”) as f:
graph_def.ParseFromString(f.read())

将GraphDef导入到默认图中

with tf.compat.v1.Session() as sess:
tf.import_graph_def(graph_def)

# 获取输入和输出的Tensorinput_tensor = sess.graph.get_tensor_by_name("input:0")output_tensor = sess.graph.get_tensor_by_name("output:0")# 执行推理output = sess.run(output_tensor, feed_dict={input_tensor: [[1.0, 2.0, 3.0, 4.0]]})

第二种;需要将frozen graph转换成saved model;可以参考可能需要修改:import tensorflow as tf

加载经过优化的GraphDef

optimized_graph_def = tf.GraphDef()
with tf.io.gfile.GFile(“/path/to/optimized/graph.pb”, “rb”) as f:
optimized_graph_def.ParseFromString(f.read())

创建SavedModel Builder

builder = tf.compat.v1.saved_model.builder.SavedModelBuilder(“/path/to/saved/model”)

定义输入和输出格式

inputs = {
“input”: input_tensor_info
}
outputs = {
“output”: output_tensor_info
}

创建模型签名

signature = tf.compat.v1.saved_model.signature_def_utils.build_signature_def(
inputs=inputs,
outputs=outputs,
method_name=tf.compat.v1.saved_model.signature_constants.PREDICT_METHOD_NAME)

with tf.compat.v1.Session() as sess:

# 导入GraphDeftf.import_graph_def(optimized_graph_def)# 添加图形和变量builder.add_meta_graph_and_variables(    sess, [tf.compat.v1.saved_model.tag_constants.SERVING],    signature_def_map={        tf.compat.v1.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:            signature    })

保存模型

builder.save()7月11日 21:23,此回答整理自钉群“【EasyRec】推荐算法交流群”