MindSpore简介

举报
irrational 发表于 2022/01/17 22:54:39 2022/01/17
【摘要】 MindSpore可以做模型的自动切分这一点让人印象深刻。当然,还有很多特点,比如自动微分、支持动态图+静态图,等等。如果希望了解更多,请看MindSpore官网: MindSpore​www.mindspore.cn/ 对于个人来讲,去年便对MindSpore有简单了解,做过一些其与TensorFlow、PyTorch的对比分...

MindSpore可以做模型的自动切分这一点让人印象深刻。当然,还有很多特点,比如自动微分、支持动态图+静态图,等等。如果希望了解更多,请看MindSpore官网:

MindSpore​www.mindspore.cn/

对于个人来讲,去年便对MindSpore有简单了解,做过一些其与TensorFlow、PyTorch的对比分析。因为此前尚未开源,只能基于公开的文档做调研而已。

而三月底,在HDC大会时,华为正式开源了MindSpore的源码和相应的文档。因而有机会实际拿来运行看看,本文将介绍如何在Windows平台安装和搭建MindSpore,同时训练一个小的网络(LeNet)。

安装MindSpore

截至今天,MindSpore官网建议的安装操作系统为EulerOS和Ubuntu,并不包括Windows。而不幸的是我的这台Lenovo游戏主机是Windows 10的系统。

仔细了下文档,发现实际上MindSpore是支持Windows平台的[1],只不过只能以CPU的模式运行(暂时不支持Windows平台的GPU)。如果希望尝试MindSpore对GPU的支持,需要使用Ubuntu系列或者华为的EulerOS(这也不是本文的重点)。

下面进入安装的正题。

安装Anaconda

非常推荐使用Anaconda作为Python虚拟环境的管理。

你可以去Anaconda官网下载,一路Next即可。如果遇到问题,可适当参考这里

由于Anaconda的安装过程简单直观,这里不详述了。

创建MindSpore的Python Env

目前MindSpore仅仅支持Python 3.7.5,下面创建的pyhton env就叫做mindspore:

conda create -n mindspore python=3.7.5
 

安装MindSpore

下载MindSpore的whl文件,下载地址见这里,目前只有一个0.1.0的版本

mindspore-0.1.0-cp37-cp37m-win_amd64.whl

在mindspore这个python env里执行:


  
  1. conda activate mindspore
  2. # 此时你应该在mindspore-0.1.0-cp37-cp37m-win_amd64.whl这个文件的目录里
  3. pip install mindspore-0.1.0-cp37-cp37m-win_amd64.whl

注意,这里很多同学反应安装过程很慢,甚至有失败的情况,基本都是网络惹得祸。因为安装上面的whl文件时会按照一些依赖的libraries,如果你的pip是默认源的话,在国内的网络下载时可能遇到问题的。一个解决办法是重试(yes, just retry),另一个办法是把pip源切换为国内的源,比如清华源。具体方法见这里:

Tsinghua Open Source Mirror​mirror.tuna.tsinghua.edu.cn/help/pypi/正在上传…重新上传取消​

一个临时的办法可以是:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple mindspore-0.1.0-cp37-cp37m-win_amd64.whl
 

验证Spore安装是否成功


  
  1. python
  2. >>> import mindspore as ms
  3. >>> print(ms.__version__)
  4. # 如果成功,上面应该打印 0.1.0

训练一个LeNet

华为官方已经在其MindSpore Doc这个Repo里内置了一些examples,比如LeNet。

直接Fork吧:

git clone https://github.com/mindspore-ai/docs.git
 

如果你和我一样懒,仅仅下载lenet.py也可以,路径如下:

https://github.com/mindspore-ai/docs/blob/master/tutorials/tutorial_code/lenet.py

训练LeNet

因为这个代码里默认使用的训练设备为Ascend,所以需要手动设置一下--device_targetCPU

python lenet.py --device_target CPU
 

MindSpore用LeNet训练MNIST

大约十几秒就可以跑完一个Epoch了:


  
  1. ******Downloading the MNIST dataset******
  2. ============== Starting Training ==============
  3. epoch: 1 step: 1, loss is 2.3008137
  4. epoch: 1 step: 2, loss is 2.299688
  5. epoch: 1 step: 3, loss is 2.309444
  6. epoch: 1 step: 4, loss is 2.3006275
  7. epoch: 1 step: 5, loss is 2.3028035
  8. epoch: 1 step: 6, loss is 2.302422
  9. epoch: 1 step: 7, loss is 2.3067183
  10. epoch: 1 step: 8, loss is 2.3057096
  11. epoch: 1 step: 9, loss is 2.3042586
  12. epoch: 1 step: 10, loss is 2.303799
  13. ...
  14. ...
  15. ...
  16. epoch: 1 step: 1870, loss is 0.15847126
  17. epoch: 1 step: 1871, loss is 0.12955114
  18. epoch: 1 step: 1872, loss is 0.15605931
  19. epoch: 1 step: 1873, loss is 0.28985676
  20. epoch: 1 step: 1874, loss is 0.14183074
  21. epoch: 1 step: 1875, loss is 0.05726877
  22. ============== Starting Testing ==============
  23. ============== Accuracy:{'Accuracy': 0.9625400641025641} ==============

看看Accuracy,已经到96.25%,还可以~

我们观察一下这个目录,会看到同时还保存了模型文件(.ckpt和.meta)还有train、val时的pb文件,具体待后面再讲。


  
  1. 04/25/2020 12:21 PM 494,155 checkpoint_lenet-1_1875.ckpt
  2. 04/25/2020 12:20 PM 15,033 checkpoint_lenet-graph.meta
  3. 04/25/2020 02:36 PM 4,831 ms_output_0eval.pb
  4. 04/25/2020 02:36 PM 15,878 ms_output_0train.pb

避坑指南

也许在上面你会遇到MNIST数据集下载的问题。

以我自己为例,在电信的宽带下载MNIST几乎是龟速,实在没法忍,想起此前在其他Repo下载过这个数据集的几个gz文件。于是copy进lenet.py里定义的路径:


  
  1. train_path = "./MNIST_Data/train/"
  2. test_path = "./MNIST_Data/test/"

需要注意的是需要分别copy train-*./MNIST_Data/train, t10k-*./MNIST_Data/test

如果你之前没下载过,你可以直接在这里下载下面这个link的MNIST_DATA的压缩包,解压到lenet.py的同级目录即可:

https://gitee.com/loveunk/mindspore/blob/master/example/_lenet_demo/MNIST_Data.zip


如果本文对你有帮助,欢迎“三连”~

文章来源: blog.csdn.net,作者:irrationality,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_54227557/article/details/121237191

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。