MindSpore使用体验与心得体会

我之前参与过MindSpore的NLP模型开发,使用r1.1与r1.2版本,Ascend 910作为开发环境,过程中对比了pytorch和paddle,相同的参数和网络结构,最终测试精度和性能均比原论文更高,因此MindSpore与Ascend 910的组合,与主流深度学习框架相比,仍有很大的优势。

 

目前MindSpore的生态越发展越好了,半年前使用的1.2版本,文档初具规模,基本开发涉及到的内容,如数据加载、模型构建都有对应的内容,但是有些内容还是不够详尽,1.3版本之后,文档更加完善,降低了入门的门槛,大家开发过程中如果遇到问题,可以先到文档中去搜索解决方案。

  

并且现在文档提供了MindSpore分别与PyTorch、TensorFlow的API映射,有助于原本熟悉这两个框架的开发者,快速地实现框架之间的过渡,也方便了做模型迁移的开发者寻找对应的算子。https://www.mindspore.cn/docs/migration_guide/zh-CN/r1.5/api_mapping.html

 

还有一点想要给大家分享的是,MindSpore文档藏得比较深的这个功能:训练时验证模型。我们在使用TF或者是Pytorch时,一般都会在每轮训练结束后,对模型进行一次验证,以找到在验证集上效果最好的模型并保存。而MindSpore的model.train(),它自带的参数只支持开发者设置每N步保存一次模型,或者是设置保存最后的N个模型,训练结束后,需要自己编写验证模型的代码,去筛选出best_model。这里官方文档提供了一种CallBack,来实现训练时验证模型。

https://www.mindspore.cn/docs/programming_guide/zh-CN/r1.5/evaluate_the_model_during_training.html

 

 

另外,大家学习和开发模型时,可以参考MindSpore ModelZoo:

https://gitee.com/mindspore/models

提供了许多的典型网络和相关预训练模型,写法非常规范,可能会找到一些文档中没有提及的用法,充分发挥了MindSpore的优势。

 

总的来说,虽然MindSpore在Ascend做了很多适配,契合度很高,表现优异,但是对于CPU/GPU的支持还不够完善,有许多算子在CPU/GPU版本上还是缺少的,希望能够完善在CPU/GPU上面所支持的算子等等,还有希望能够尽快发布中文版API文档,方便开发者快速上手API。

posted @ 2021-12-25 15:50  MS小白  阅读(207)  评论(0)    收藏  举报