tensorflow转onnx的实现方法
作者:小广向前进 发布时间:2022-07-08 23:04:51
标签:tensorflow,onnx
安装tf2onnx以及onnxruntime
pip install onnxruntime
pip install tf2onnx
tf 转为onnx步骤为如下:
将tf动态图冻结,生成冻结后的pb文件
使用tf2onnx 将pb文件转为onnx文件
将tf动态图冻结使用如下代码:
def export_frozen_graph(model, model_dir, name_pb) :
f = tf.function(lambda x: model(inputs=x))
f = f.get_concrete_function(x=(tf.TensorSpec(model.inputs[0].shape, model.inputs[0].dtype)))
frozen_func = convert_variables_to_constants_v2(f)
frozen_func.graph.as_graph_def()
print("-" * 50)
print("Frozen model inputs: ")
print(frozen_func.inputs)
print("Frozen model outputs: ")
print(frozen_func.outputs)
tf.io.write_graph(graph_or_graph_def=frozen_func.graph,
logdir=model_dir,
name=name_pb,
as_text=False)
使用tf2onnx 将pb文件转为onnx文件时需要在终端执行,需要指出的是大部分tf模型的输入layout都是NHWC,而ONNX模型的输入layout为NCHW,因此建议在转换的时候加上--inputs-as-nchw这个选项,其他选项可以参考文档,非常详细,具体运行命令如下:
python -m tf2onnx.convert --input yolo.pb --output model.onnx --outputs Identity:0,Identity_1:0,Identity_2:0 --inputs x:0 --inputs-as-nchw x:0 --opset 10
参数说明:
input 输入的pb模型
output 输出的onnx文件名
inputs 输入层名字,有多个输入时,中间用逗号隔开
outputs 输出层名字,有多个输出时,中间用逗号隔开
–inputs-as-nchw 将输入作为nchw格式,注意加上输入层名字
–opset onnx 版本号
通过程序直接转:
tf2onnx.convert.from_keras(model, inputs_as_nchw=[model.inputs[0].name], output_path=model_filepath + 'yolo.onnx') --opset 10
来源:https://blog.csdn.net/qq_45723275/article/details/129283375
0
投稿
猜你喜欢
- 有时候会需要通过从保存下来的ckpt文件来观察其保存下来的训练完成的变量值。ckpt文件名列表:(一般是三个文件)xxxxx.ckpt.da
- 在国内外大中型数据库管理系统中,把ORACLE作为数据库管理平台的用户比较多。RACLE 不论是数据库管理能力还是安全性都是无可非
- 聚集索引,数据实际上是按顺序存储的,数据页就在索引页上。就好像参考手册将所有主题按顺序编排一样。一旦找到了所要搜索的数据,就完成了这次搜索,
- 如下所示:try:a=1except Exception as e: print (e)import tracebackimport sys
- 先看下面例子的效果:<INPUT TYPE="text" NAME=""&
- redis模块的使用1.安装模块pip3 install redis2.导入模块import redis3.连接方式严格连接模式:r=red
- BLOG地址:http://www.planabc.net/article.asp?id=107学习标准的朋友,一般都会在学习的过程中接触到
- 这篇文章主要介绍了简单了解Python读取大文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- 在jQuery的官方文档中,提示用户这是一个低级的方法,应该用.data()方法来代替。$.data( element, key, valu
- 笔者日积月累了许多精彩、实用的Web特效的制作,这些特效几乎都是比较常用的网页特效。现在我就把这些经过
- python socket多线程实现客户端与服务器连接,供大家参考,具体内容如下之前因为一些作业需要完成一个服务器监听多个客户端的程序,于是
- 代码如下:CREATE TABLE #tmptb(tbname sysname,tbrows int ,tbREserved varchar
- 实现的功能:在win7下,每天晚上1点,自动将 F:/data中所有文件进行压缩,以[mongodb+日期]命名,将压缩好的文件存储在本地目
- 前言本文主要给大家介绍了关于python中用Future对象回调别的函数的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的
- 目前网上能获取的免费的python打包工具主要有三种:py2exe、PyInstaller和cx_Freeze。下面简单介绍windows7
- 这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- django外键使用 一对一因为django中处于安全和方便将数据库中的表封装成模型,所以很多sql原生的功能无法使用, 比如 left j
- 本文实例讲述了Python中列表与元组的乘法操作。分享给大家供大家参考,具体如下:直接上code吧,还可以这么玩儿列表乘法:li=[1,]l
- Web 设计离不开调色板,现成的调色板多不胜数,不管是 Windows 标准色板,还是 Web 标准色板,还是 Pantone 色板,它们虽
- PyCharm 应该是大多数 python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能。它是帮助用户在使