tensorflow转onnx模型

本文介绍了如何将TensorFlow模型转换为.pb文件,再进一步转为ONNX格式,并解决在转换过程中遇到的问题。在转换为ONNX后,使用tf2onnx工具可能会导致在转换为TensorRT(TRT)时出现错误,如'Assertion failed: kernel_weights.shape.d[1]*ngroup==nchan'。该问题的解决方案是升级tf2onnx到更高版本,如1.8.4。此外,提供了获取模型输入输出名称的代码片段,以及转换命令的示例。

一、准备相应的库

       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的方式调用。

举例如下,如果有多个输出节点,用逗号隔开:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值