DefTruth / RVM-Inference

🔥Robust Video Matting C++ inference toolkit with ONNXRuntime、MNN、NCNN and TNN, via lite.ai.toolkit.
GNU General Public License v3.0
116 stars 27 forks source link

模型转换的问题 #27

Open yyl9510 opened 2 years ago

yyl9510 commented 2 years ago

你好,我看官方提供了TensorFlow ,Pytorch,ONNX的模型文件,然后MNN也提供了用MNNConvert转模型的方法。 请问是如何转成rvm_mobilenetv3_fp32-480-640.mnn这种480*640的模型的呢,不知道是模型转换的哪个参数呢? 然后我看模型转换里面还有--fp16 可以将将conv/matmul/LSTM的float32参数保存为float16,模型将减小一半,精度基本无损。这是不是意味着可以用--fp16参数,然后得到的结果也就是16位精度的结果呢?

例如我现在想弄一个rvm_mobilenetv3_fp32-360-480.mnn,请问该输入什么参数呢?

image

DefTruth commented 2 years ago

是的。MNN是可以用--fp16来得到更小体积的模型文件的,而且可以直接调用,就和调用32位的模型一样,不需要做什么代码逻辑的改动。就是要注意一下最后输入的结果是32还是16的,用netron打开看一下。我记得是输入输出都是32,然后MNN用了一些额外的节点来做32->16->32的转换

yyl9510 commented 2 years ago

那例如 rvm_mobilenetv3_fp32-480-640.mnn , 这个后面的 tenser 的宽高是怎么设置的呢?

DefTruth commented 2 years ago

那例如 rvm_mobilenetv3_fp32-480-640.mnn , 这个后面的 tenser 的宽高是怎么设置的呢?

这个比较复杂,可以去看看我写的一篇文章:

DefTruth commented 2 years ago

先转静态ONNX->再转MNN

yyl9510 commented 2 years ago

先转静态ONNX->再转MNN

感谢,我研究一下