我想使用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输出图(my_tf_model.pb)用tensorflow 2.0.0进行训练和保存。但是对于uff转换器,我必须使用tensorflow 1.15.0。这是否是一个问题,还是.pb文件应该向下兼容?
更新:使用与uff转换器相同版本的模型进行测试(1.15.0),但仍然存在相同的错误。
发布于 2019-12-16 09:40:39
回答我自己的问题:我的.pb文件不是一个冻结的图形,而是SavedModel格式的一部分
若要修复此问题,请将其转换为冻结图并使用冻结图:
python -m tensorflow.python.tools.freeze_graph --input_saved_model_dir SAVED_MODEL_DIR那么uff.from_tensorflow_frozen_model()应该可以工作。
https://stackoverflow.com/questions/59345600
复制相似问题