可以转载,但不准删改内容!
是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/tensorflow2ncnngithub.com好多人以为 ncnn 支持 onnx 模型,就用 tensorflow-onnx 转换器,先转成 onnx,结果跑 onnx2ncnn 各种报错
onnx/tensorflow-onnxgithub.comncnn 所支持的 onnx,是 pytorch 转来的onnx,不是别的框架转来的 onnx。不一样!不一样!
mlir 的意义
tensorflow2 出来,据说是完全全新的 API,我打开 tf2 官网看着 tutorial 学习了下。 我之前一直用 mxnet/gluon 捏模型,tf2 作为后来者,体验了下 API,感觉 tf2 完成了 gluon 所没有完成的所有技术梦想,好感度+++。
tf2 里头,frozen pb 是 deprecated 的东西了,mlir 是交换模型的正统选择
我搞不懂为何很多人觉得 mlir 和 tvm 有联系,在我眼里,mlir