当前位置:首页 » 《关注互联网》 » 正文

如何从PyTorch迁移到MindSpore

5 人参与  2024年10月10日 16:40  分类 : 《关注互联网》  评论

点击全文阅读


前言

相信做AI开发的小伙伴,有一大半用的都是PyTorch.我之前也是一直用PyTorch做开发。
上个月参加了华为昇思25天打卡营,官方提供了充足的算力支持,几乎是不限时间不限量的那种,也让我体验了一把算力自由,好好感受了一番昇思框架。
昇思真的是很好用的国产AI框架,但是因为之前的开发都是基于PyTorch的,所以打卡营结束后花时间研究了一下如何从PyTorch迁移到昇思,整理成文章,既是帮自己做个归纳整理,也希望能帮到有类似需求的小伙伴。

关于昇思框架的介绍,就不多提了。如果是萌新小伙伴,可以戳链接了解
昇思MindSpore基本介绍

正文

迁移前的思考

为什么要从PyTorch迁移到MindSpore?

程序能跑,就不要动,相信这是多数程序员的心理。那为什么还要做迁移?我估计大概是出于两个原因:

学习新框架,更深的了解技术原理用到了昇腾Ascend加速卡,MindSpore是天然支持Ascend的。

不管是什么原因,希望阅读此文能让您有所收获。

迁移工作量有多大?

MindSpore和PyTorch同为AI计算框架,很多设计是类似的,具体到API层面,也不会有太大差异。所以我认为,迁移工作量不算大。但是如果是复杂模型,考虑的问题比较多,可能工作量就大了。

我们回顾一下模型开发的大致过程:

准备数据集,数据预处理模型组网训练和调试模型评估

在这个过程中的每一步,Pytorch和MindSpore都会有一些差异性的API.只要找到这些差异性的API,全部改写成MindSpore中的API,基本就实现了初步迁移。

我们可以手动实现API迁移,也可以通过MindSpore提供的API扫描工具,识别差异性API,这样更加高效。

API扫描

MindSpore提供的API扫描工具叫MindSpore Dev Toolkit,是一个IDE插件,可用在PyCharm和VS CODE上。
这里以VS CODE为例。MindSpore Dev Toolkit没有上架到插件市场,需要自己下载安装包安装。
MindSpore Dev Toolkit安装包下载链接
下载后,点击VS CODE左侧第五个按钮“Extensions”,点击右上角三个点,再点击“Install from VSIX…”,如下图
安装toolkit

安装完成后即可使用。
打开需要扫描的程序文件,任意位置处右键,打开菜单,选择“扫描本地文件”。如下图
右键点击
扫描后,就可以看到扫描结果,如下图
扫描结果

从上图可以看到,基本上扫描出了PyTorch和MindSpore一一对应的API.然后根据扫描结果,一个一个进行手动改写。
MindSpore Dev Toolkit不仅支持文件级扫描,还支持项目级扫描,更多使用详情可以参考MindSpore Dev Toolkit官方文档

对于小的项目,实现了API迁移,基本就完成了PyTorch到MindSpore的转换。如果是复杂项目,可能会遇到更多问题,比如有些PyTorch API在MindSpore中没有实现,有些参数类型不一致等等。这些问题就更加深入了,受限于篇幅,本文不做深入讨论了。后续作者将会推出更多文章,探讨更深层面的项目迁移,欢迎大家持续关注。


点击全文阅读


本文链接:http://zhangshiyu.com/post/170143.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1