从Keras模型转换成tensorrt的方法

本文介绍了将Keras模型转换为TensorRT engine的详细流程,包括使用tf2onnx将savedmodel转换为ONNX模型,再通过onnx2trt生成engine。涉及的环境包括TensorFlow 1.14.0、CUDA 10.0和TensorRT 7.0.0.11等。在转换过程中遇到的问题,如模型维度不匹配和dynamic shape的处理,以及解决方案进行了说明。
摘要由CSDN通过智能技术生成

1 流程
对于目前找到的最有效的方式是将Keras模型保存为savedmodel格式,也就是说一个只含有计算图的.pb,一个variables文件和一个json合并的一个文件夹。tf-trt加速的话会还给你一个优化过后的.pb和variable,并不是我们希望使用的engine形式。
最稳妥的流程为:savedmodel–>onnx–>engine
下载tf2onnx,使用如下命令:
python3 -m tf2onnx.convert --saved-model /lsj/checkpoint_germany_savedmodel/ --opset 7 --inputs input_1:0[1,224,224,3] --output /lsj/germany_model.onnx
具体参数GitHub有说明。
注意:一定要在root目录下运行此命令,否则会报错关于__path__。
最后使用onnx-trt工具,命令如下:
onnx2trt /lsj/germany_model.onnx -o /lsj/germany.engine
即可成功生成engine
2环境
TensorFlow 1.14.0
CUDA 10.0
TensorRT 7.0.0.11
cmake 3.18.2
protobuf 3.12.2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值