摘要: 本文介绍了如何在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)的更多相关文章

  1. ubuntu 18.04设置系统自带系统截图快捷键

    0.前言 ubuntu 18.04自带一个截图工具gnome-screenshot,有三种模式,全屏截图.当前活动窗口截图.选取活动区域截图 1.设置快捷键 Setting->Devices-& ...

  2. Ubuntu 18.04及Snap体验——让Linux入门更简单(转))

    https://www.linuxidc.com/Linux/2018-06/152993.htm 初次听说过Linux的时候,是大一计算机课时候老师介绍说除了Windows还有Linux.Unix操 ...

  3. 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 ...

  4. Ubuntu 18.04 环境下 kubernetes v1.16.2 单机部署说明

    一.安装环境 本次部署使用阿里云ECS 操作系统: Ubuntu  18.04 64位 实例规格: ecs.c6.large 2U4G 二.kubernetes 版本 k8s.gcr.io/kube- ...

  5. 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的系统 ...

  6. 一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程

    一看就懂的 安装完ubuntu 18.04后要做的事情和使用教程原创CrownP 最后发布于2019-02-05 00:48:30 阅读数 2982 收藏展开1.更改为阿里云的源点击软件和更新 点击其 ...

  7. 几个小实践带你快速上手MindSpore

    摘要:本文将带大家通过几个小实践快速上手MindSpore,其中包括MindSpore端边云统一格式及华为智慧终端背后的黑科技. MindSpore介绍 MindSpore是一种适用于端边云场景的新型 ...

  8. 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 ...

  9. Ubuntu 18.04.1 下快速搭建 LNMP环境

    1.Nginx的安装 Nginx安装是属于最简单的,只需要在命令行执行 sudo apt-get install nginx 就能自动安装 Nginx,其中过程中需要 选择 Y/n 的选择Y就行了,当 ...

  10. Ubuntu 18.04/18.10快速开启Google BBR的方法

    说明:Ubuntu 18.04改变挺大的,内核直接升到了正式版4.15,而BBR内核要求为4.9,也就是说满足了,所以我们不需要换内核就可以很快的开启BBR,这里简单说下方法. 提示:Ubuntu 1 ...

随机推荐

  1. 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键.Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务.与此同时,随着技术不断发展,集成更多的功能和服务变 ...

  2. Facade 外观模式简介与 C# 示例【结构型5】【设计模式来了_10】

    〇.简介 1.什么是外观模式? 一句话解释:   将一系列需要一起进行的操作,封装到一个类中,通过对某一个方法的调用,自动完成一系列操作. 外观模式是一种简单而又实用的设计模式,它的目的是提供一个统一 ...

  3. RLChina2022-实践课三:强化学习算法

    MDP算法 MDP被定义为一个元组(S,A,P,r,R) S:所有状态集合 A:在环境力里面智能体所作动作的集合 P:状态转移函数P(s'|s,a),智能体在当前s下,执行a之后,转移到是s'的概率 ...

  4. 20.3 OpenSSL 对称AES加解密算法

    AES算法是一种对称加密算法,全称为高级加密标准(Advanced Encryption Standard).它是一种分组密码,以128比特为一个分组进行加密,其密钥长度可以是128比特.192比特或 ...

  5. 最新 2023.2 版本 WebStorm 永久破解教程,WebStorm 破解补丁永久激活(亲测有效)

    最近 jetbrains 官方发布了 2023.2 版本的 IDEA,之前的激活方法并不支持这个新的版本. 下面是最新的激活教程,激活步骤和之前是类似的,只是换用了不同的补丁文件. 本教程支持 Jet ...

  6. Odoo—货运管理—odoo时差问题

    第一次踩odoo时差的坑,才知道原来odoo在存储日期数据时,是以UTC0时区存放的,和北京时间相差8个小时.只是odoo本身能很好的处理日期数据的存储和展示,所以刚开始接触odoo,不容易发现这个问 ...

  7. 7z 一键压缩备份

    该批处理已开源 开原地址: 点击进入 磁盘备份 工具有很多,如果你需要增量式备份的话,以下这些方法并不适合你.goodsync 可以了解一下. 以下方式仅适用于,懒人一键压缩备份. 对于我来说 定期的 ...

  8. 【主流技术】详解 Spring Boot 2.7.x 集成 ElasticSearch7.x 全过程(二)

    目录 前言 一.添加依赖 二. yml 配置 三.注入依赖 四.CRUD 常用 API ES 实体类 documents 操作 常见条件查询(重点) 分页查询 排序 构造查询 测试调用 五.文章小结 ...

  9. Java——面向对象(static关键字开始)

    一.static 可以修饰成员变量和成员方法 关键字特点: 随着类的加载而加载: 优先于对象存在: 被类的所有对象共享: 可以通过类名直接调用: 注意事项: 在静态方法中是没有this关键字的 静态的 ...

  10. Git如何回到拉取之前的代码

    1.执行git reflog命令查看你的历史变更记录: 2.git reset --hard 2aee3f(拉代码之前的提交记录) Git基础命令总结请参考:https://blog.csdn.net ...