如何从PyTorch迁移到MindSpore

前言

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

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

正文

迁移前的思考

为什么要从PyTorch迁移到MindSpore?

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

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

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

迁移工作量有多大?

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

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

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

在这个过程中的每一步,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中没有实现,有些参数类型不一致等等。这些问题就更加深入了,受限于篇幅,本文不做深入讨论了。后续作者将会推出更多文章,探讨更深层面的项目迁移,欢迎大家持续关注。

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明志刘明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值