Python Tensorflow冻结图到UFF的TensorRT推理转换

Python Tensorflow冻结图到UFF的TensorRT推理转换,python,tensorflow,tensorrt,uff,Python,Tensorflow,Tensorrt,Uff,我想在TensorRT(C++)中使用tensorflow模型,首先需要将.pb格式转换为.uff格式。执行此代码时: uff_model = uff.from_tensorflow_frozen_model( frozen_file="my_tf_model.pb", output_nodes=["output_layer"], output_filename="tmp.uff", debug_mode=True, ) 我收到以下错误消息: Traceback (most r

我想在TensorRT(C++)中使用tensorflow模型,首先需要将.pb格式转换为.uff格式。执行此代码时:

uff_model = uff.from_tensorflow_frozen_model(
  frozen_file="my_tf_model.pb",
  output_nodes=["output_layer"],
  output_filename="tmp.uff",
  debug_mode=True,
)
我收到以下错误消息:

Traceback (most recent call last):
  File "/home/jodo/ILONA/object-detection/ssd/src/uff_converter/uff_converter.py", line 29, in <module>
    text=False,
  File "/home/jodo/miniconda3/envs/uff_converter/lib/python3.7/site-packages/uff/converters/tensorflow/conversion_helpers.py", line 228, in from_tensorflow_frozen_model
    graphdef.ParseFromString(frozen_pb.read())
google.protobuf.message.DecodeError: Error parsing message
回溯(最近一次呼叫最后一次):
文件“/home/jodo/ILONA/object detection/ssd/src/uff_converter/uff_converter.py”,第29行,在
text=False,
文件“/home/jodo/miniconda3/envs/uff_converter/lib/python3.7/site packages/uff/converters/tensorflow/conversion_helpers.py”,第228行,from_tensorflow_freezed_模型
graphdef.ParseFromString(冻结的\u pb.read())
google.protobuf.message.DecodeError:解析消息时出错
导出的图形(my_tf_model.pb)通过tensorflow 2.0.0进行训练并保存。但是对于uff转换器,我必须使用tensorflow 1.15.0。这可能是一个问题,还是.pb文件应该向下兼容

更新:使用与使用uff转换器相同版本(1.15.0)培训的模型进行测试,但仍然存在相同的错误。

回答我自己的问题: 我的.pb文件不是冻结的图形,而是SavedModel格式的一部分

要解决此问题,请1)将其转换为冻结图形并使用冻结图形:

python -m tensorflow.python.tools.freeze_graph --input_saved_model_dir SAVED_MODEL_DIR
然后
uff.from\u tensorflow\u freezed\u model()
应该可以工作