Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

模型转换的问题 #27

Open
yyl9510 opened this issue Mar 17, 2022 · 5 comments
Open

模型转换的问题 #27

yyl9510 opened this issue Mar 17, 2022 · 5 comments

Comments

@yyl9510
Copy link

yyl9510 commented Mar 17, 2022

你好,我看官方提供了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
Copy link
Owner

DefTruth commented Mar 17, 2022

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

@yyl9510
Copy link
Author

yyl9510 commented Mar 17, 2022

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

@DefTruth
Copy link
Owner

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

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

@DefTruth
Copy link
Owner

先转静态ONNX->再转MNN

@yyl9510
Copy link
Author

yyl9510 commented Mar 17, 2022

先转静态ONNX->再转MNN

感谢,我研究一下

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants