一、准备相应的库
tensorflow当然是要的。试了下
python:3.6.13 tensorflow:1.14.0
python 3.7.10 tensorflow:1.15.0, onnx=1.8.1, tf2onnx=1.8.4 是成功的。
如果要安装tensorflow-addons 可以查看https://github.com/tensorflow/addons/
安装onnx-tensorrt:
可以直接pip安装,如下所示,
pip install -U tf2onnx
也可以git安装
git clone https://github.com/onnx/onnx-tensorflow.git
cd onnx-tensorflow
python setup.py install
二、转pb文件
一般来说的模型导出方法会将网络信息与权重信息分开存储在不同文件当中,比如ckpt,meta等文件这在部署时候不是很方便。官方提供了一种Freeze Graph的方式,用于将模型相关信息统统打包到一个*.pb文件当中。
官方提供了相关工具freeze_graph,一般安装完TensorFlow后会自动添加到用户PATH相应的bin目录下,如果没有找到的话可以去TensorFlow源码tensorflow/python/tools/free_graph.py这个位置去找一下,或者直接通过命令行导入module的方式调用。
举例如下,如果有多个输出节点,用逗号隔开:
<
本文介绍了如何将TensorFlow模型转换为.pb文件,再进一步转为ONNX格式,并解决在转换过程中遇到的问题。在转换为ONNX后,使用tf2onnx工具可能会导致在转换为TensorRT(TRT)时出现错误,如'Assertion failed: kernel_weights.shape.d[1]*ngroup==nchan'。该问题的解决方案是升级tf2onnx到更高版本,如1.8.4。此外,提供了获取模型输入输出名称的代码片段,以及转换命令的示例。
最低0.47元/天 解锁文章
827

被折叠的 条评论
为什么被折叠?



