【Python】Pytorch模型转NCNN模型
本文最后更新于:2025年6月29日 下午
前言
最近用Real-ESRGAN的时候遇到了个问题,别人预训练的模型都是Pytorch的.pth格式的模型,但NCNN打包的ESRGAN只能使用.param和.bin的NCNN模型,有没有办法转换
chaiNNer软件可以实现,而且很简单,但是这个软件比较折磨
下载
前往 github 下载对应版本的Release
下载完后运行会安装Python,但是这个下载安装不会经过系统代理,从而大陆地区绝对出现问题:#3043
这里我给了一个解决方案(英语不好,六级擦边过),从源代码手动下载Python,然后解压到软件内的python目录,重命名为python
但是这个Python是作为摆设的,因为我电脑有Python了,而且装有CUDA的torch,如果没有或者怕冲突的话建议还是继续使用我们刚刚复制的python作为虚拟环境。
此时进入就不会提示安装Python了,因为我们只做模型转换,ffmpeg的功能暂时用不上,他也会下载ffmpeg,就只能耐心等了,报错不用理,一样能够进入软件
安装依赖
使用内嵌Python
点这里打开
需要下载Pytorch和NCNN
可以展开查看具体版本,然后在软件内安装(一样不经过代理,所以建议本地安装)
使用系统Python
还是按照上面的方法,打开依赖的面板,然后自己的电脑手动安装pip install 包名==版本号
完成之后需要设置使用系统Python(需要设置环境变量,如果没有需要设置python路径)
使用GPU
转换
在左侧面板,Search搜索Load Model,选择Pytorch里面的,拖入工作流
然后选择转换器Convert to NCNN,
连起来
最后保存为NCNN模型(Save Model,选择NCNN里面的)
第一步选择.pth的模型,最后一步设置保存的目录和名称
最后点击上面的运行,很快就转换完成了