摘要:一文带你看看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安装包:

嗟来之食张小白也可以吃的,毕竟饿了很久了,慌不择路饥不择食也是情有可原的。

于是,开干!

从上面的文件名 mindspore_gpu-2.0.0-cp37-cp37m-win_amd64.whl 可以看出,这个whl包应该是用Python 3.7编译的。

首先打开Windows的命令行,查看下当前的Python版本:

正好对应了。所以如果文件名是 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解压是不行的:

因为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

这就装好了?!张小白有点不相信自己的眼睛(后来的事实表明,确实没那么简单)

再安装MindVision:

pip install mindvision

...

打开 https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.8/tutorials/zh_cn/beginner/mindspore_quick_start.py

下载 mindspore_quick_start.py

python mindspore_quick_start.py --device_target=GPU

奇怪,刚才不是装过了mindvision了吗?怎么还会报找不到mindvision的错?难道pip被装到了不该装的地方?

那只有一个办法:使用python -m pip install xxx这种安装法了。

python -m pip install mindspore_gpu-2.0.0-cp37-cp37m-win_amd64.whl

python -m pip install mindvision

下载验证脚本:

打开 https://obs.dualstack.cn-north-4.myhuaweicloud.com/mindspore-website/notebook/r1.8/tutorials/zh_cn/beginner/mindspore_quick_start.py

下载可以获得 mindspore_quick_start.py 文件。

GPU的第一次验证:

python mindspore_quick_start.py --device_target=GPU

好像有点卡:

不过居然走下去了:

从目录结构可以看出,它自动创建了lenet和mnist两个目录,然后下载了mnist数据集,然后开始例行的训练、评估、推理流程:

虽然10轮epoch都已经做完了,但是python代码迟迟没有退出:

恐怕真的有点什么问题。

张小白强行中断了当前脚本的执行。

先用以前在ubuntu的GPU环境中常用的test.py脚本试试:

编辑test.py

执行python test.py

奇怪,这倒是OK的。应该说明MindSpore GPU版应该是没问题的。

再来试试:

python mindspore_quick_start.py --device_target=GPU

关闭图形的小窗口后:

居然打印出来了训练的结果:预测:126133,实际126133。嗯,孺子可教也!

不过张小白总觉得GPU训练的时间有点慢,不如用CPU方式训练比较一下:

python mindspore_quick_start.py --device_target=CPU

CPU训练后居然会出现有个图片推理结果错误了。

但是这也许不重要。

我们看下训练的速度比较:

看来不能光靠感觉,得靠数字说话,虽然LeNet是个最简单的网络,但是张小白这台2019年的笔记本的GPU的训练速度还是比CPU略快的。

点击关注,第一时间了解华为云新鲜技术~

这是你没见过的MindSpore 2.0.0 for Windows GPU版的更多相关文章

  1. 超赞!12套你没见过的社交媒体 & 社交网站图标

    如今,社交网络成为我们信息获取和传播的重要途径,很多网站都有把内容分享到社交媒体的功能.社交媒体图标作为向用户传递信息的重要媒介,不管是在网页还是 Web 应用程序中都非常需要.今天这篇文章和大家分享 ...

  2. 这是你没见过的不一样的redis

    转: 这是你没见过的不一样的redis 提到Redis,大家一定会想到的几个点是什么呢? 高并发,KV存储,内存数据库,丰富的数据结构,单线程(6版本之前) 那么,接下来,上面提到的这些,都会一一给大 ...

  3. 漫谈Python魔术方法,见过的没见过的都在这里了

    漫谈Python魔术方法,见过的没见过的都在这里了 就说一下,不深入 假的一览 提到魔术方法,学过python都应该知道一些.至少你得会__init__吧. 在我之前写的博文中有很多都涉及魔术方法.比 ...

  4. 创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文件或程序集“System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。系统没找到指定的文件

    创建 userSettings/Microsoft.SqlServer.Configuration.LandingPage.Properties.Settings 的配置节处理程序时出错: 未能加载文 ...

  5. 【MindSpore】Docker上成功使用MindSpore1.0.0的GPU版本

    本文是在宿主机Ubuntu16.04上安装Docker(nvidia-docker),并成功进行MindSpore1.0.0的GPU训练: Ubuntu 16.04 Docker Nvidia-doc ...

  6. 地址重写了,只是ip 没转发,应该是9999那个才对,rewrite /sbgl/(.*) http://127.0.0.1:9999/$1 permanent;,这样,

    记录想nginx搞路径重写的失败历程. 1.想将从nginx发出的127.0.0.1:80 请求过来的带sbgl的字眼去掉,然后,代理为127.0.0.1:9999, 所以我就百度出这个  这个  r ...

  7. Qt国际化相关类(以前没见过codec->toUnicode,QTextCodec,QLocale.toString和QLocale::setDefault,QInputMethod::locale())

    QTextCodec QTextCodec为文本编码之间提供转换. Qt用Unicode 来存储,绘制和操作字符串.在很多情况下你可能希望操作不同编码的数据.例如,大部分日本文档是以Shift-JIS ...

  8. 一封来自恶魔的挑战邀请函,那些你见过或者没见过的C语言指针都在这里了

    前言 相信大多数的同学都是第一门能接触到语言是C/C++,其中的指针也是比较让人头疼的部分了,因为光是指针都能专门出一本叫<C和指针>的书籍,足见指针的强大.但如果不慎误用指针,这些指针很 ...

  9. WinAPI你知道多少?!(上千个,好多都没见过)

    http://www.cnblogs.com/vanver/archive/2013/06/13/NO-2013_06_13pm.html 播客开篇,讲讲废话:本篇播客只是推荐给热与钻研的同学们... ...

  10. Qt国际化(Q_DECLARE_TR_FUNCTIONS() 宏给非Qt类添加翻译支持,以前没见过QTextEncoder和QTextDecoder和QLibraryInfo::location()和QEvent::LanguageChange)

    Internationalization with Qt 应用程序的国际化就是使得程序能在国际间可用而不仅仅是在本国可用的过程. Relevant Qt Classes andAPIs 以下的类支持Q ...

随机推荐

  1. 高效技巧揭秘:Java轻松批量插入或删除Excel行列操作

    摘要:本文由葡萄城技术团队原创并首发.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在职场生活中,对Excel工作表的行和列进行操作是非常普遍的需求 ...

  2. 斗地主AI出牌助手--在线调用斗地主AI,实现自动斗地主

    简介 程序基于Python3.7开发的斗地主AI出牌助手,目前支持欢乐斗地主桌面版,微信版,也可以自己制作相应其他版本. 此出牌助手核心是识别出三位玩家出牌内容,调用基于DouZero封装的API接口 ...

  3. 【Android】学习day05|简单登陆页面的实现|监听代码

    实现效果如下图所示 实现代码[部分] MainActivity.java 1 package com.example.app02; 2 3 import androidx.appcompat.app. ...

  4. 神经网络入门篇:详解参数VS超参数(Parameters vs Hyperparameters)

    参数 VS 超参数 什么是超参数? 比如算法中的learning rate \(a\)(学习率).iterations(梯度下降法循环的数量).\(L\)(隐藏层数目).\({{n}^{[l]}}\) ...

  5. Vite4+Typescript+Vue3+Pinia 从零搭建(6) - 状态管理pina

    项目代码同步至码云 weiz-vue3-template pina 是 vue3 官方推荐的状态管理库,由 Vue 核心团队维护,旨在替代 vuex.pina 的更多介绍,可从 pina官网 查看 特 ...

  6. 2023年奔走的总结---吉特日化MES 智能搬运AGV 篇三

    <2023年奔走的总结---吉特日化MES 项目趣事 篇一> <2023年奔走的总结---吉特日化MES 制药项目 篇二> <2023年奔走的总结---吉特日化MES 智 ...

  7. Codeforces Round #426 (Div. 2) problem B

    B. The Festive Evening time limit per test 1 second memory limit per test 256 megabytes input standa ...

  8. 华为防火墙1day?

    背景信息 缺省情况下,FW通过8887端口提供内置的本地Portal认证页面,用户可以主动访问或HTTP重定向至认证页面(https://接口IP地址:8887)进行本地Portal认证. 当企业部署 ...

  9. tarjan无向图割点与割边板子

    \(\Huge{割点}\) \(无向图割点判定法则\) 当遍历到一个点x时,这个点为割点的情况有两种: 第一种是该节点为根节点且子节点数>=2,必导致两个子节点不连通: 第二种是该节点不为根节点 ...

  10. 【Python】【OpenCV】定位条形码(二)moments和HuMoments

    根据上一篇博客可知,单纯的通过求取最大面积而进行定位的局限性,因此我们接下来将通过cv2.moments()和cv2.HuMoments()这两个方法来在更复杂的环境中去找到我们的目标区域. cv2. ...