pytorch 转换onnx_通过MLIR将tensorflow2模型转换到ncnn

本文介绍了如何将tensorflow2模型通过MLIR转换为ncnn,强调了tf2与tf的区别以及mlir的重要性和使用。详细步骤包括从tf2模型导出mlir,编译mlir2ncnn转换器,以及ncnn模型的优化。转换过程中需要注意模型的shape定义和图优化,同时指出该转换器仅支持tensorflow2导出的mlir。
摘要由CSDN通过智能技术生成

1456d7f2bbfa56524f9f36b7cb81dab2.png

可以转载,但不准删改内容!

是tf2 不是tf

请注意!请注意!这里说的是 tensorflow2,不是 tensorflow,这两个不是一个东西,以下内容只适用于 tensorflow2。

曾经,我写过 tensorflow2ncnn.cpp,从 tensorflow frozen pb 转成 ncnn param+bin。

然而,我真的没用过 tensorflow,这转换器就是半猜半试写出来的,各种 bug,最后只好承认自己菜,放弃了,删掉了。 tensorflow 那么乱七八糟的 API,我不想学,一点都不想看。

后来,有社区大佬 hanzy88 接手这份代码,并把 vgg16 resnet yolov3 弄好了,ncnn 置顶多年的 issue 终于有了着落。

https://github.com/hanzy88/tensorflow2ncnn​github.com

好多人以为 ncnn 支持 onnx 模型,就用 tensorflow-onnx 转换器,先转成 onnx,结果跑 onnx2ncnn 各种报错

onnx/tensorflow-onnx​github.com
397f00b836c2521b8afcd402d9265f2b.png

ncnn 所支持的 onnx,是 pytorch 转来的onnx,不是别的框架转来的 onnx。不一样!不一样!

mlir 的意义

tensorflow2 出来,据说是完全全新的 API,我打开 tf2 官网看着 tutorial 学习了下。 我之前一直用 mxnet/gluon 捏模型,tf2 作为后来者,体验了下 API,感觉 tf2 完成了 gluon 所没有完成的所有技术梦想,好感度+++。

tf2 里头,frozen pb 是 deprecated 的东西了,mlir 是交换模型的正统选择

我搞不懂为何很多人觉得 mlir 和 tvm 有联系,在我眼里,mlir

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值