Python 类型错误:graph_def必须是GraphDef原型
我将keras model.h5转换为freezed_graph.pb,以便在jetson上进行优化和运行。但是优化冻结的_graph.pb会产生错误 raise TypeError('graph_def必须是GraphDef proto')类型错误: graph_def必须是GraphDef原型 代码:Python 类型错误:graph_def必须是GraphDef原型,python,tensorflow,keras,proto,tensorrt,Python,Tensorflow,Keras,Proto,Tensorrt,我将keras model.h5转换为freezed_graph.pb,以便在jetson上进行优化和运行。但是优化冻结的_graph.pb会产生错误 raise TypeError('graph_def必须是GraphDef proto')类型错误: graph_def必须是GraphDef原型 代码: import tensorflow.contrib.tensorrt as trt frozen_graph = './model/frozen_model.pb' output_names
import tensorflow.contrib.tensorrt as trt
frozen_graph = './model/frozen_model.pb'
output_names = ['conv2d_59','conv2d_67','conv2d_75']
trt_graph = trt.create_inference_graph(
input_graph_def=frozen_graph,
outputs=output_names,
max_batch_size=1,
max_workspace_size_bytes=1 << 25,
precision_mode='FP16',
minimum_segment_size=50
)
graph_io.write_graph(trt_graph, "./model/",
"trt_graph.pb", as_text=False)
您必须首先解析文件中的内容,然后将其作为参数传递:
导入tensorflow.contrib.tensorrt作为trt
冻结的_图='。/model/freezed_model.pb'
输出_名称=['conv2d_59'、'conv2d_67'、'conv2d_75']
#读取图形定义(二进制格式)
将开放(冻结的_图,'rb')作为f:
冻结图\u gd=tf.GraphDef()
冻结的\u图形\u gd.ParseFromString(f.read())
#如果冻结图形为文本格式,请按如下方式加载它
#导入google.protobuf.text_格式
#将开放(冻结的_图,'r')作为f:
#freezed_graph_gd=google.protobuf.text_format.Parse(f.read(),tf.GraphDef())
trt\u图=trt.create\u推断图(
输入_graph_def=freezed_graph_gd,#将解析后的图形定义传递到此处
输出=输出名称,
最大批量大小=1,
max\u workspace\u size\u bytes=1这是我得到的:tensorflow.python.framework.errors\u impl.InvalidArgumentError:无法导入元图,请查看错误日志以了解更多信息。@SaiKrishnadas这似乎是另一个错误,没有更多信息很难判断,是从trt引发的异常。是否也创建推理图?