这是你没见过的MindSpore 2.0.0 for Windows GPU版
摘要:一文带你看看MindSpore 2.0.0 for Windows GPU版。
本文分享自华为云社区《MindSpore 2.0.0 for Windows GPU泄漏版尝鲜》,作者:张辉 。
在看了MindSpore架构师王磊老师的帖子( https://zhuanlan.zhihu.com/p/574507930 )之后,本来张小白要源码编译MindSpore for Windows GPU版的,尽管已经安装了CUDA 11.1和配套的cuDNN 8.6.0 for CUDA 11.X( https://bbs.huaweicloud.com/blogs/381666 ),但是由于各种意外,编译的进度停滞了。然而,凭一点点小道消息,张小白发现了别人编译好的pip安装包:
![](https://pic1.zhimg.com/80/v2-bb3d16087b0a435af010c6c7cb2c7c30_720w.webp)
嗟来之食张小白也可以吃的,毕竟饿了很久了,慌不择路饥不择食也是情有可原的。
于是,开干!
从上面的文件名 mindspore_gpu-2.0.0-cp37-cp37m-win_amd64.whl 可以看出,这个whl包应该是用Python 3.7编译的。
首先打开Windows的命令行,查看下当前的Python版本:
![](https://pic4.zhimg.com/80/v2-e16e9613033a9cfc4990a5d2ce9d6c87_720w.webp)
正好对应了。所以如果文件名是 xxx_cp39_cp39m_xxxx.whl,张小白会怎么办?显然是要先准备一个Anaconda的Python 3.9环境再安装。这个思路不知道读者们Get到了没有。。
不过,这个时候必须要解决一下 安装了CUDA和cuDNN之后的一个小BUG(这其实是源码编译发现的问题,等张小白真的源码编译成功后再仔细解释这件事儿)
就是在 CUDA 11.1和配套的cuDNN 8.6.0 for CUDA 11.X安装手册( https://bbs.huaweicloud.com/blogs/381666 )中,简单的将cuDNN解压是不行的:
![](https://pic1.zhimg.com/80/v2-5cc5b27be515b53599027092bce9a500_720w.webp)
因为MindSpore会直接到$CUDNN_HOME的lib下找文件,而不是到lib/x64目录下找。
所以,自然需要将上图左边的文件拷贝到 $CUDNN_HOME的lib目录下。
好了,这个小插曲解决了之后,我们再来安装MindSpore 2.0.0 for Windows GPU版吧!
pip install mindspore_gpu-2.0.0-cp37-cp37m-win_amd64.whl
![](https://pic4.zhimg.com/80/v2-3e7c951336ba4fb26445cae0b95527bb_720w.webp)
这就装好了?!张小白有点不相信自己的眼睛(后来的事实表明,确实没那么简单)
再安装MindVision:
pip install mindvision
![](https://pic1.zhimg.com/80/v2-59151d2ebf8861849cd3ae173cf557e8_720w.webp)
...
![](https://pic2.zhimg.com/80/v2-caed95e3ee068f91158125aa90c17201_720w.webp)
下载 mindspore_quick_start.py
python mindspore_quick_start.py --device_target=GPU
![](https://pic3.zhimg.com/80/v2-6efe35bd5d64d64287e4d476be70574a_720w.webp)
奇怪,刚才不是装过了mindvision了吗?怎么还会报找不到mindvision的错?难道pip被装到了不该装的地方?
那只有一个办法:使用python -m pip install xxx这种安装法了。
python -m pip install mindspore_gpu-2.0.0-cp37-cp37m-win_amd64.whl
![](https://pic4.zhimg.com/80/v2-003f8c9d97adea7992aff12e1a0a1447_720w.webp)
python -m pip install mindvision
![](https://pic1.zhimg.com/80/v2-621fde7294038c7222449bb4df1004b4_720w.webp)
![](https://pic4.zhimg.com/80/v2-7344ad6ea0002b141e26a0fea94e9a5b_720w.webp)
下载验证脚本:
下载可以获得 mindspore_quick_start.py 文件。
![](https://pic3.zhimg.com/80/v2-ff4fd329652fad00ccea3e8448d3222a_720w.webp)
GPU的第一次验证:
python mindspore_quick_start.py --device_target=GPU
![](https://pic3.zhimg.com/80/v2-e34d5b9338ba283caedb84adc7e0c852_720w.webp)
好像有点卡:
不过居然走下去了:
![](https://pic3.zhimg.com/80/v2-3da95ad7316a255ae0feeec4d738352a_720w.webp)
从目录结构可以看出,它自动创建了lenet和mnist两个目录,然后下载了mnist数据集,然后开始例行的训练、评估、推理流程:
![](https://pic3.zhimg.com/80/v2-43f80c6336dd7861d91a41dd89b2a832_720w.webp)
虽然10轮epoch都已经做完了,但是python代码迟迟没有退出:
![](https://pic2.zhimg.com/80/v2-bfa2a3da930b8868af664803530ebff9_720w.webp)
恐怕真的有点什么问题。
张小白强行中断了当前脚本的执行。
先用以前在ubuntu的GPU环境中常用的test.py脚本试试:
编辑test.py
![](https://pic4.zhimg.com/80/v2-b8fb9916e32a2fdff8ed7cd81494959f_720w.webp)
执行python test.py
![](https://pic3.zhimg.com/80/v2-326bb5c12faafec290ec3cf4e31b0e36_720w.webp)
奇怪,这倒是OK的。应该说明MindSpore GPU版应该是没问题的。
再来试试:
python mindspore_quick_start.py --device_target=GPU
![](https://pic4.zhimg.com/80/v2-72cac59a9f97c1114627fad7dfb559e3_720w.webp)
![](https://pic3.zhimg.com/80/v2-3587ccbf15bc064e818e9f26b886b25a_720w.webp)
![](https://pic3.zhimg.com/80/v2-8fac3fe145b4934014491d0395eda206_720w.webp)
关闭图形的小窗口后:
![](https://pic3.zhimg.com/80/v2-b439d302a1b1dedaaaa63b4ea4172ec6_720w.webp)
居然打印出来了训练的结果:预测:126133,实际126133。嗯,孺子可教也!
不过张小白总觉得GPU训练的时间有点慢,不如用CPU方式训练比较一下:
python mindspore_quick_start.py --device_target=CPU
![](https://pic2.zhimg.com/80/v2-0021eab3303e44b515f8eaed28e622a9_720w.webp)
![](https://pic3.zhimg.com/80/v2-34179b617a65b7a18dace80598f0a13e_720w.webp)
![](https://pic3.zhimg.com/80/v2-a0f432f13f7d9e8bb99f8cdc6a06ea36_720w.webp)
CPU训练后居然会出现有个图片推理结果错误了。
但是这也许不重要。
我们看下训练的速度比较:
![](https://pic1.zhimg.com/80/v2-5385d2d4061edcd878b5ed74eebfb328_720w.webp)
看来不能光靠感觉,得靠数字说话,虽然LeNet是个最简单的网络,但是张小白这台2019年的笔记本的GPU的训练速度还是比CPU略快的。
相关文章
- 苹果App Store 审核应用被拒 我所碰到的问题集合
- 微信小程序 修改/使用上一个页面的data数据及方法 getCurrentPages()获取页面栈的使用 常见页面展示
- MONGODB WiredTiger 页面大小与功能及 wiredTiger 版本与 MONGODB 的关系
- Postgresql IO 对于PG的 过去,现在 , 未来 (2 --面临的挑战和解决方案)
- Postgresql IO 对于PG的 过去,现在 , 未来 (3--直面问题与结果展示和PG16新东西)
- Python Tkinter Gui 运行不卡顿,多线程解决界面卡死问题
- 长安十二时望楼传讯表情包生成器 —(后面有彩蛋)
- 实现图像检索系统需要用到哪方面的知识?
- [世界杯]根据赔率计算各种组合可能性与赔率
- DeepMind携AlphaCode登Science封面,写代码能力不输程序员
- 计算机科学博士经验:准备几个月,答辩半小时
- 如何保障企业数据资产的全生命周期安全?看这篇就够了
- 谁说产品经理和程序员之间不能和平共处?
- 从微服务应用于技术栈,了解华为云微服务应用
- 五年时间完成业务数字化转型,华为如今做得怎么样了?
- 理解三值逻辑与NULL,你离SQL高手更近了一步
- 基于DAYU的实时作业开发,分分钟搭建企业个性化推荐平台
- 容器化时代到来!跳转机分配问题终于“有救”了
- 性能测试界“网红”云性能测试服务,了解一下?
- 对话机器人70年:科幻与现实的交融