看這裡!帶你快速體驗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,下載吧。。。
wgethttps://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 installhttps://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 installhttps://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