1.任务背景
2.大致流程
1、在你的工作机上训练好网络,导出网络的模型参数文件(.pth);
2、在寒武纪官网上租用一个MLU270的容器;
3、编写离线模型生成程序,将本地保存的.pth文件逐步转成可以在MLU220部署的.cambricon文件;
4、编写测试代码,交叉编译测试程序,生成可执行文件ELF;
5、将可执行文件及编译出的build文件夹拷贝至MLU220,运行程序。
3.具体步骤
3.1 导出网络的模型参数文件(.pth)
这部分我不懂,问问别人。
3.2 租一个MLU270的容器
(解释一下为什么要租MLU270的容器:我们最终要把模型移植到MLU220这个硬件平台,那么如何让这个硬件识别我们的模型呢,就需要利用工具将我们的.pth文件转化为MLU220可以识别的格式,这个工具MLU270有,220没有,因此我们要在网上租这个容器,一次可以租半个月,租吧,反正免费。)
进入寒武纪开发平台,点击这个链接寒武纪开发平台 ,点击添加开发容器,我选的是public-server/mlu270_ubuntu18.04.pytorch,最终的效果如图:
3.3 编写离线模型生成程序,将本地保存的.pth文件逐步转成可以在MLU220部署的.cambricon文件
这步是比较麻烦的,我的测试程序过一会在我的主页里更新吧。转化过程大致分为以下几个步骤:
0、进入MLU270容器;
1、在MLU270上将本地保存的.pth进行量化;
2、基于量化后的.pth文件进行在线推理;
3、生成适用于MLU270的.cambricon文件;
4、基于.cambricon文件进行离线推理,反复调试结果,查看是否与主机上运行结果相同(在可接受误差范围内满足要求);
5、重新生成适用于MLU220的.cambricon文件。
3.3.0 进入MLU270容器
因为后续生成.camb