看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)
摘要: 本文介绍了如何在Ubuntu 18.04上安装CPU版本的MindSpore V1.0。并使用安装好的MindSpore进行了LeNet的模型训练。
Part One:引言
在HC2020大会中,张小白就透露出了想试玩MindSpore V1.0的愿望。MindSpore是华为开发的一款深度学习的开源框架,今天这个愿望就要实现了。。。
先来分析下该怎么玩转。。。让我们看下 https://www.mindspore.cn/install 官网的介绍文档:
体验MindSpore V1.0 的方式有N种

官方文档也很不错,给大家提供了选择,然后分别告诉你该怎么玩。。。
首先,硬件平台为Ascend910的,一般人就别选了。这是需要买华为的昇腾服务器的人才能玩的。而且,张小白的Atlas 200DK都玩不了。。因为那只是Ascend 310芯片。。不过,倒是可以在ModelArts上选择这个环境。但是,ModelArts上面,这些环境都内置好了,其实用户也体验不到安装和折腾的快感了。(我们的座右铭是——我折腾、我快乐)。
其次,硬件平台为GPU CUDA的,有好显卡的人可以上。什么叫做好显卡。举个例子吧。最近即将出来的 GeForce RTX 3080显卡,

或者比它更高端的3090显卡:

用这些卡去做AI训练,跑MindSpore,可能没啥问题。。。否则,你可能会觉得慢。。。当然,张小白也没有这些好显卡。。。所以,退而求其次,只能选择CPU的方式了。。。
选中了CPU之后,你可以选择的操作系统就不多了。。。包含:
(1)ubuntu aarch64,这个是ARM芯片的ubuntu系统,典型的就是鲲鹏相关服务器。。。当然,200DK的运行系统也是这个系统。张小白有没有鲲鹏台式机或者笔记本,显然没有。当然,希望华为或者荣耀赶紧推出这一型号的笔记本。。倒是可以让用户尝试一下。。。
(2)ubuntu x86,这个是x86芯片的ubuntu系统。这个范围可就大了去了。要么,你可以直接在台式机或笔记本上安装原生的ubuntu系统(搞什么双启动之类的),也可以使用虚拟化软件安装ubuntu虚拟机。这个就作为笔者这篇文章的操作系统吧。
(3)windows x64,这个很简单,就是x86芯片(但是需要64位的,其实前面也都是64位的。。)的windows系统。比如windows10之类的。这个用台式机或者笔记本都可以试。windows的好处是,不仅仅可以选择cpu模式,如果你有个好的显卡,还可以选择gpu模式。不过显然张小白不是土豪。其实windows这块的体验已经有大大们试过了。这里暂时不提。
我们看下面:Python版本必须是3.7.5,这个没有办法选择。
安装方式有Pip和Source这两种。显然,Pip的安装方式应该比较快,Source即源码安装,这个方法,其实张小白还在折腾中,也不知道是否能折腾出结果。。。
那么,我们就用上面的这一条线:版本1.0.0+硬件CPU+操作系统Ubuntu-X86+Python3.7.5+安装方式pip当作本次MindSpore V1.0的安装方式吧。。
前面的链接下介绍了系统安装的环境要求:

其中requirements.txt内容如下:
numpy >= 1.17.0, <= 1.17.5
protobuf >= 3.8.0
asttokens >= 1.1.13
pillow >= 6.2.0
scipy >= 1.3.3
easydict >= 1.9
sympy >= 1.4
cffi >= 1.13.2
wheel >= 0.32.0
decorator >= 4.4.0
setuptools >= 40.8.0
matplotlib >= 3.1.3 # for ut test
opencv-python >= 4.1.2.30 # for ut test
sklearn >= 0.0 # for st test
pandas >= 1.0.2 # for ut test
bs4
astunparse
packaging >= 20.0
Part Two:安装Ubuntu 18.04虚拟机
先到 http://old-releases.ubuntu.com/releases/bionic/ 下载 18.04的镜像。。
找到并下载 http://old-releases.ubuntu.com/releases/bionic/ubuntu-18.04.1-desktop-amd64.iso

使用VMWare安装,选择“简易安装”,一路走下去(把内存改为4G),顺利完成。

使用ascend用户登录:(当初安装时选择的用户名)

进入系统,记得不帮助Ubuntu就对了。。

也不要升级:

替换国内阿里源:
sudo cp /etc/apt/sources.list /etc/apt/source.list.bk
vi /etc/apt/sources.list
注释现有所有的deb
贴入以下内容:
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
保存退出。
sudo apt update

sudo apt-get update

sudo apt-get install aptitude

Part Three:安装Python3.7.5
在python官网已经找不到 3.7.5了,所以估计只能选择源码安装了。。。

好在在华为云的镜像站有 https://mirrors.huaweicloud.com/python/

复制地址,打开新的teminal,下载吧。。。
wget https://mirrors.huaweicloud.com/python/3.7.5/Python-3.7.5.tar.xz

解压:
xz -d Python-3.7.5.tar.xz
tar xvf Python-3.7.5.tar

。。。

python安装源码包搞定。
为了编译源码,我们做一些准备工作,比如安装gcc和g++:
sudo aptitude install gcc

耐心的等待结束:

sudo apt install gcc

sudo apt-get install g++

编译器搞定,接着装python的依赖包:
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev

。。。

正式编译安装Python-3.7.5
切换Python-3.7.5目录
sudo ./configure --enable-optimizations --prefix=/usr/python3
指定安装后的python放到 /usr/python3目录下。

。。。

sudo make
耐心等待。。。
有400多个test要做。。

继续耐心等待。。。

然后部署。。
sudo make install

切换到安装目录,查看版本:

在/etc/profile加入/usr/python3/bin的PATH,并执行,这样可以在任何地方都可以优先执行python 3.7.5

好了,Python 3.7.5源码编译完成。
Part Four:PIP安装MindSpore
终于可以激冻人心的进入到MindSpore的安装过程了。
为了确保是在3.7.5环境的pip下安装,
执行 python3 -m pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.0/MindSpore/cpu/ubuntu_x86/mindspore-1.0.0-cp37-cp37m-linux_x86_64.whl

当然了。。出点问题也算正常的。。


好像是装decorator时遇到了权限问题。
那我们换成root用户装吧。。。
python3 -m pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.0/MindSpore/cpu/ubuntu_x86/mindspore-1.0.0-cp37-cp37m-linux_x86_64.whl
很快就秒装完毕,也没任何出错:


然后进入python验证下安装结果:

PIP安装MindSpore的过程真的很简单。
Part Five:使用Mindspore进行LENET训练
首先到mindspore gitee官网下载lenet的相关示例代码:
https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/lenet

然后打开 http://yann.lecun.com/exdb/mnist/ 网页:

将链接中这四个文件下载到本地,并放入前面下载好的lenet下新建的MNIST_DATA目录下。

并且,用winrar解压,分别将train开头的文件和t10k开头的文件放入train和test目录下。


然后,把这些代码打包成lenet.zip,使用scp工具(如Xftp 6),传输到ubuntu 18.04中:
然后执行unzip lenet.zip解压。

就可以在ubuntu下看到这些文件了。
当然,这些过程也可以直接在ubuntu中做。。比如使用wget直接下载训练集文件等等。
接着,为了保险起见,暂时先用root执行吧。。(怕ascend用户执行又有什么权限问题。。。)
cd /home/ascend/lenet/
vi train.py
将device_target的default改为CPU。将data_path设成 MNIST_DATA目录。其余暂时保持不变:

然后开始跑训练吧。。。
python3 train.py

一会儿就跑完了。。。

并且在ckpt下会生成一些文件。。。

回到上层目录,执行:
python3 eval.py --ckpt_path=./ckpt/checkpoint_lenet-10_1875.ckpt

执行验证成功,模型的精度为98.7580%。。。
说明使用mindspore在跑lenet这些例程还是比较顺利的。
参考资料:
(1)[干货分享] Mindspore 1.0初体验 https://bbs.huaweicloud.com/forum/thread-80567-1-1.html @JeffDing
(2)[干货分享] 体验MindSpore v1.0(一)——安装篇 https://bbs.huaweicloud.com/forum/thread-80509-1-1.html @Tianyi_Li
看这里!带你快速体验MindSpore V1.0(For ubuntu 18.04)的更多相关文章
- ubuntu 18.04设置系统自带系统截图快捷键
0.前言 ubuntu 18.04自带一个截图工具gnome-screenshot,有三种模式,全屏截图.当前活动窗口截图.选取活动区域截图 1.设置快捷键 Setting->Devices-& ...
- Ubuntu 18.04及Snap体验——让Linux入门更简单(转))
https://www.linuxidc.com/Linux/2018-06/152993.htm 初次听说过Linux的时候,是大一计算机课时候老师介绍说除了Windows还有Linux.Unix操 ...
- Installing Hyperledger Fabric v1.1 on Ubuntu 16.04 — Part I
There is an entire library of Blockchain APIs which you can select according to the needs that suffi ...
- Ubuntu 18.04 环境下 kubernetes v1.16.2 单机部署说明
一.安装环境 本次部署使用阿里云ECS 操作系统: Ubuntu 18.04 64位 实例规格: ecs.c6.large 2U4G 二.kubernetes 版本 k8s.gcr.io/kube- ...
- Debian 9 / Debian 10 / Ubuntu 18.04 / Ubuntu 18.10快速开启BBR加速 或 关闭BBR加速
如果使用的是Debian 9.Debian 10.Ubuntu 18.04.Ubuntu 18.10等内核高于4.9版本的系统,均可以使用此方法开启BBR加速,若你使用了Ubuntu 19.04的系统 ...
- 一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程
一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程原创CrownP 最后发布于2019-02-05 00:48:30 阅读数 2982 收藏展开1.更改为阿里云的源点击软件和更新 点击其 ...
- 几个小实践带你快速上手MindSpore
摘要:本文将带大家通过几个小实践快速上手MindSpore,其中包括MindSpore端边云统一格式及华为智慧终端背后的黑科技. MindSpore介绍 MindSpore是一种适用于端边云场景的新型 ...
- Installing Hyperledger Fabric v1.1 on Ubuntu 16.04 — Part II & Part III
This entire tutorial is the second part of the installation of Hyperledger Fabric v1.1. In the previ ...
- Ubuntu 18.04.1 下快速搭建 LNMP环境
1.Nginx的安装 Nginx安装是属于最简单的,只需要在命令行执行 sudo apt-get install nginx 就能自动安装 Nginx,其中过程中需要 选择 Y/n 的选择Y就行了,当 ...
- Ubuntu 18.04/18.10快速开启Google BBR的方法
说明:Ubuntu 18.04改变挺大的,内核直接升到了正式版4.15,而BBR内核要求为4.9,也就是说满足了,所以我们不需要换内核就可以很快的开启BBR,这里简单说下方法. 提示:Ubuntu 1 ...
随机推荐
- 使用 GitHub Action 自动更新 Sealos 集群的应用镜像
在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键.Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务.与此同时,随着技术不断发展,集成更多的功能和服务变 ...
- Facade 外观模式简介与 C# 示例【结构型5】【设计模式来了_10】
〇.简介 1.什么是外观模式? 一句话解释: 将一系列需要一起进行的操作,封装到一个类中,通过对某一个方法的调用,自动完成一系列操作. 外观模式是一种简单而又实用的设计模式,它的目的是提供一个统一 ...
- RLChina2022-实践课三:强化学习算法
MDP算法 MDP被定义为一个元组(S,A,P,r,R) S:所有状态集合 A:在环境力里面智能体所作动作的集合 P:状态转移函数P(s'|s,a),智能体在当前s下,执行a之后,转移到是s'的概率 ...
- 20.3 OpenSSL 对称AES加解密算法
AES算法是一种对称加密算法,全称为高级加密标准(Advanced Encryption Standard).它是一种分组密码,以128比特为一个分组进行加密,其密钥长度可以是128比特.192比特或 ...
- 最新 2023.2 版本 WebStorm 永久破解教程,WebStorm 破解补丁永久激活(亲测有效)
最近 jetbrains 官方发布了 2023.2 版本的 IDEA,之前的激活方法并不支持这个新的版本. 下面是最新的激活教程,激活步骤和之前是类似的,只是换用了不同的补丁文件. 本教程支持 Jet ...
- Odoo—货运管理—odoo时差问题
第一次踩odoo时差的坑,才知道原来odoo在存储日期数据时,是以UTC0时区存放的,和北京时间相差8个小时.只是odoo本身能很好的处理日期数据的存储和展示,所以刚开始接触odoo,不容易发现这个问 ...
- 7z 一键压缩备份
该批处理已开源 开原地址: 点击进入 磁盘备份 工具有很多,如果你需要增量式备份的话,以下这些方法并不适合你.goodsync 可以了解一下. 以下方式仅适用于,懒人一键压缩备份. 对于我来说 定期的 ...
- 【主流技术】详解 Spring Boot 2.7.x 集成 ElasticSearch7.x 全过程(二)
目录 前言 一.添加依赖 二. yml 配置 三.注入依赖 四.CRUD 常用 API ES 实体类 documents 操作 常见条件查询(重点) 分页查询 排序 构造查询 测试调用 五.文章小结 ...
- Java——面向对象(static关键字开始)
一.static 可以修饰成员变量和成员方法 关键字特点: 随着类的加载而加载: 优先于对象存在: 被类的所有对象共享: 可以通过类名直接调用: 注意事项: 在静态方法中是没有this关键字的 静态的 ...
- Git如何回到拉取之前的代码
1.执行git reflog命令查看你的历史变更记录: 2.git reset --hard 2aee3f(拉代码之前的提交记录) Git基础命令总结请参考:https://blog.csdn.net ...