1. 程式人生 > 實用技巧 >看這裡!帶你快速體驗MindSpore V1.0(For ubuntu 18.04)

看這裡!帶你快速體驗MindSpore V1.0(For ubuntu 18.04)

摘要:本文介紹瞭如何在Ubuntu 18.04上安裝CPU版本的MindSpore V1.0。並使用安裝好的MindSpore進行了LeNet的模型訓練。

Part One:引言

在HC2020大會中,張小白就透露出了想試玩MindSpore V1.0的願望。MindSpore是華為開發的一款深度學習的開源框架,今天這個願望就要實現了。。。

先來分析下該怎麼玩轉。。。讓我們看下官網的介紹文件:

體驗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虛擬機器

先到下載 18.04的映象。。

找到並下載

使用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了,所以估計只能選擇原始碼安裝了。。。

好在在華為雲的映象站有

複製地址,開啟新的teminal,下載吧。。。

wget

解壓:

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

當然了。。出點問題也算正常的。。

好像是裝decorator時遇到了許可權問題。

那我們換成root使用者裝吧。。。

python3 -m pip install

很快就秒裝完畢,也沒任何出錯:

然後進入python驗證下安裝結果:

PIP安裝MindSpore的過程真的很簡單。

Part Five:使用Mindspore進行LENET訓練

首先到mindspore gitee官網下載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初體驗@JeffDing

(2)[乾貨分享] 體驗MindSpore v1.0(一)——安裝篇@Tianyi_Li

點選關注,第一時間瞭解華為雲新鮮技術~