目錄
- 一. 搭建一套自己的深度學習平臺
- 二. 安裝系統
- 三. 安裝NVIDA組件
- 四. 安裝深度學習框架 TensorFlow
- 五. 配置遠程訪問
- 六. 驗收
- 七. 福利(救命稻草 ??)
最近因為疫情的影響,筆者一直宅在家里辦公,辦公之余琢磨著把之前自己組裝的電腦搭建一套深度學習環境,方便學習,下面就記錄下這次折騰的成果,標題是從零開始,手把手搭建,但是需要讀者具備基礎的Linux操作知識和命令列互動習慣,當然,讀者如果初入Linux也沒關系,每個人都是從新手開始的,筆者在搭建深度學習環境的程序,也重裝了好幾次,換了很多系統,所以,挫敗不可避免,只需勇往直前,
本文以TensorFlow2.0為例,但是Pytorch和MXNet等框架都可以按照本文介紹的方法搭建配置,
Let's Go!
心急的讀者可直接從 二.安裝系統 開始閱讀,
=====================================================
一. 搭建一套自己的深度學習平臺
1.為什么需要自己搭建
- 云主機太貴,一般地,AWS機器學習便宜且算力恰當的實體也要0.9美元/時,國內同樣算力的阿里云、騰訊云只會更貴,
- Colab這類免費平臺不穩定,可以跑跑玩具實體,不宜作為嚴肅的學習和打比賽用途,最常見的問題是:有較高機率分配不到GPU;或者訓練程序連接超時;需要翻墻,
- 搭建這樣一個平臺,不僅可以用作深度學習,還可以搭建大資料環境(縱使單機版也足以滿足學習目的),
- 經濟寬裕后還可以再升級配置
- 強化自己的折騰能力,不開玩笑的,組裝硬體+環境配置可以提高動手能力
2.應該如何挑選顯卡
- GTX1080Ti 11G 版本目前價位在 3800 ~ 4500 元左右,雖然性價比非常高,但是非常非常高的機率買到礦卡(別人挖礦后淘汰的二手卡),慎重選擇
- RTX2070 SUPER 8G 目前價位在3500元左右,綜合算力和性價比考慮,值得推薦,
- RTX2060 和 GTX1080 等 6G 版本的顯卡,不是非常推薦,考慮一個問題:如果是6G的顯卡,配兩塊才12G,升級的空間和價值不大,
- RTX2080Ti 和 Titan 系列的顯卡,如果預算非常充裕可以直接選購,算力非常強勁,
3.作業系統比較
- ubuntu系列:筆者接觸過16.04,18.04,19.04,19.10. ubuntu是深度學習領域非常流行的一個Linux發行版,好處很多,比如容易上手,但是,我個人認為,最好遠離ubuntu,這個系統太容易崩潰了,也許有讀者會說為什么我就沒有遇到崩潰的事情呢?筆者不置可否,但是為了穩妥起見,如果您希望在一番辛苦配置之后的一年甚至兩年后還想使用這套環境,請避免使用ubuntu,
- archlinux系列: 筆者接觸過原生的archlinux和manjaro發行版,該系列的系統非常先鋒,犀利,安裝任何東西都非常容易,往往一行 pacman -S xxx 搞定,但是滾動更新犯了穩定的大忌,滾掛導致系統崩潰的用戶不在少數,筆者也是其中之一,因此建議讀者也避免選用,
- deepin系列:這是國內發布的一個發行版,雖是Linux,使用起來和windows其實差不多,尤其是自帶Wine使得很多windows軟體可以直接安裝使用,但鑒于此系列的系統有不少莫名其妙的bug(個人體驗),不推薦選用它搭建我們的深度學習平臺,
- centos系列:這是筆者接觸過的最穩定的版本,這套系統脫胎于RedHat——企業級系統,主打穩定性,當然批評centos的用戶不在少數,但是我們的目的就是搭好一套環境,然后不再折騰作業系統方面的事情,centos正合適,注意,不要選用最新的centos8,會出現一些不兼容現象,比如臭名昭著的libappindicator丟失問題,筆者建議選擇centos7-1908就可以了,這是centos7最后一個版本,足夠新了,
4.為什么非要使用Linux并且安裝在真實機器上
- windows是最容易用的系統,但是對于需要運行深度學習等任務的人來說卻不是這樣,首先,很多深度學習框架都優先支持Linux;其次,優秀的并行計算框架,比如Ray目前仍只支持Linux;再次,如果讀者需要在運行tensorflow等框架的同時,還要和sparkmlib等組件互動,使用linux系統是最省精力的選擇,
- 虛擬機不是個好的選擇,如果只是利用CPU訓練神經網路,虛擬機是個好選擇,如果讀者已經有一塊非常不錯的顯卡,虛擬機就是個壞的選擇,
5.筆者的機器配置
- CPU:I7-9700K
- 顯卡:RTX2070 SUPER 8G
- 記憶體:32G
- 主硬碟:500G SSD
- 次硬碟:4T 機械硬碟
- 電源:650W
- 作業系統:centos7-1908
- 客戶機:一臺安裝Win10作業系統的筆記本電腦
6.安裝的大致流程
- 安裝系統
注意,筆者安裝的是無桌面客戶端的版本,然后遠程登陸去操作的,這樣的好處是,可以把機器當作專門的學習平臺,省去了一大堆不必要的配置(比如安裝搜狗輸入法、網易云音樂... ??);而且一塊好顯卡和Steam相遇注定要荒廢學業 ??,
- 安裝NVIDA顯卡驅動
- 安裝CUDA
- 安裝CuDNN
- 安裝Anaconda
- 安裝深度學習框架,以 TensorFlow2.0 為例
- 配置遠程訪問
=====================================================
下面筆者就根據自己的實際操作情況,來介紹如何從零搭建一臺深度學習機器,
二. 安裝系統
1.制作啟動盤(在windows操作上完成下列步驟)
- 從清華源上下載CentOS-7-x86_64-Minimal-1908
- 從deepin社區下載bootmaker工具 (非常好用的U盤啟動器制作作業)
- 運行bootmaker,插入一只容量4G以上的U盤,根據bootmaker的界面選擇下載好的作業系統,然后選擇這只U盤,注意勾選格式化選項,然后制作啟動盤
- 將下載的iso鏡像檔案復制一份到啟動盤
- 修改U盤的名稱,比如修改為CENTOS這類好記的名稱
2.安裝系統
- 插入U盤到需要安裝系統的機器上
- 開機后進入boot界面,選擇從U盤啟動
- 不出意外,應該能看到下面界面

- 用上下鍵把高亮游標移動到第一項,按 e 鍵,把下面紅色區域洗掉,然后輸入前面命名的CENTOS,格式為
LABEL=CENTOS quiet

- 按組合鍵 ctrl + x 開始安裝
- 接下來就是選擇系統語言,筆者選擇了英文,讀者酌情選擇
- 后面就是一些常規配置,根據讀者自己的需要選擇即可,如果不熟悉Linux磁區操作的,可以選擇自動劃分,一般根目錄有50G足夠,
- 囿于篇幅,作業系統的安裝就介紹到這里,系統安裝完成后,讀者可以配置一下軟體源,目的是為了安裝新軟體的時候能使用國內的倉庫(速度快),具體操作請搜索,關鍵詞為:centos7更換阿里源
- 另外,centos還需要配置一下打開終端的快捷鍵,搜索關鍵詞:centos7 添加終端快捷鍵
三. 安裝NVIDA組件
1.安裝CUDA
-
CUDA又叫cuda-toolkit,是NVIDA公司專門開發的一套介面,方便利用GPU做高速計算,主流的深度學習框架都面向CUDA做了兼容,
-
CUDA的版本適配非常重要,目前TensorFlow2.0在CUDA上最穩妥的選擇是10.0,如果選擇10.1以上,有機率不識別GPU
-
從CUDA倉庫下載CUDA10.0,按照下圖選擇

-
取得下載路徑后使用 wget 命令下載,然后在存放檔案的路徑下依次運行下述三行命令
sudo rpm -i cuda-repo-rhel7-10-0-local-10.0.130-410.48-1.0-1.x86_64.rpmsudo yum clean allsudo yum install cudasudo vim ~/.bashrc然后在bashrc檔案里添加下面配置export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
2.安裝CuDNN
- CuDNN是深度神經網路庫,和CUDA搭配使用,專門用于深度學習任務
- 從CuDNN倉庫下載適配CUDA版本的安裝包,注意認準CUDA10.0版本號(下載CuDNN前需要注冊,推薦使用微信注冊)
- 在存放CuDNN包的路徑下運行下列命令
tar xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgzsudo cp -P cuda/include/cudnn.h /usr/local/cuda/includesudo cp -P cuda/lib64/lib* /usr/local/cuda/lib64sudo chmod a+r /usr/local/cuda/include/cudnn.hsudo chmod a+r /usr/local/cuda/lib64/lib*sudo ldconfig
- 推薦一篇NVIDA官方寫的檔案,詳細介紹了CuDNN的安裝:DEEP LEARNING SDK DOCUMENT
3.安裝NVIDA顯卡驅動
- 顯卡驅動有一個安裝原則:裝最新的驅動,
- 讀者可以去NVIDA官網根據自己的顯卡型號搜索合適的驅動,注意notebook是指筆記本,不是給臺式機用的,
- 點擊搜索后會跳轉到一個下載頁面,右鍵復制這個下載路徑
- 在cenots的終端輸入 wget 下載路徑,就可以直接把驅動下到本地硬碟上
- 輸入
echo -e "blacklist nouveau\noptions nouveau modeset=0" > /etc/modprobe.d/blacklist.conf - 輸入
lsmod | grep nouveau如果沒有輸入任何內容,說明成功禁止了nouveau - 安裝這個驅動,輸入
./NVIDIA-Linux-x86_64-440.59.run(讀者根據自己下載的驅動名修改;根據提示安裝) - 重啟機器后輸入
nvidia-smi,如果看到下面畫面,說明已經成功安裝

四. 安裝深度學習框架 TensorFlow
1.關于Anaconda
- Anaconda是python領域比較流行的包管理器,類似的有virtualenv等,Anaconda的特色是,會自動幫助安裝需要的依賴項;并且使用方便,檔案詳盡,
- 沒必要安裝完整版的Anaconda,安裝Miniconda即可,因為我們會在虛擬環境中搭建需要的各種深度學習環境,例如在A環境圍繞TensorFlow搭建,在B環境圍繞Pytorch搭建,兩套環境互相不會污染,如果讀者將兩個框架安裝在一個環境里,會有嚴重的沖突,
2.安裝Anaconda
- 從清華源倉庫下載Miniconda
- 使用
sh命令直接安裝,使用默認選項即可
3.創建虛擬環境并激活
conda create --name tensorflow(也可使用其他名稱,如 tf)- 激活環境
conda activate tensorflow
4.安裝 TensorFlow2.0
conda install tensorflow-gpu==2.0.0- 請嚴格輸入這條命令,conda會下載安裝所需的全部依賴,其中包括cudatoolkit-10.0.130和cudnn-7.6.5,雖然前面安裝了這兩個包,但是不沖突,可以默認執行;如果在訓練神經網路時發現沖突,可以回頭再洗掉這兩個包
5.補充兩條常用的conda命令
- conda deactivate 退出當前環境
- conda info --env 查看本機上安裝的環境
五. 配置遠程訪問
1.安裝PUTTY遠程客戶端
- XShell雖然好用,但它是收費軟體,Putty基本可滿足使用需要
- 按照下圖進行配置

2.安裝 WinSCP
- WinSCP是一款免費的傳輸軟體,方便客戶機和終端機之前互傳檔案
- 配置程序簡單直白,檔案支持拖拽,這里不再贅述,
3.安裝jupyter notebook并配置遠程訪問
conda install jupyter notebookjupyter notebook --generate-config生成一份默認組態檔- 輸入python,進入ipython互動環境,如下圖所示輸入代碼

- 注意,中間兩步輸入密碼時不會顯示任何字符;記得保存列印結果的字串 'sha...'
- 開始配置jupyter notebook
- 打開jupyter的組態檔,路徑一般為 /home/用戶名/.jupyter/jupyter_notebook_config.py
- 修改 c.NotebookApp.ip,填充機器的IP地址 (使用 ip addr 命令查看本機的IP地址)
- 修改 c.NotebookApp.password, 把保存的密碼填充進去,注意格式為 c.NotebookApp.password = u'sha...'
- 修改 c.NotebookApp.open_browser , 這項默認是True,遠程登陸時要修改為 False
- 將 c.NotebookApp.port =8888 反注釋 (可以自己另指定一個埠)
4.開放埠
- 推薦使用 iptables 工具,首先要關閉 firewall 服務
- systemctl stop firewalld.service
- systemctl disable firewalld.service
- systemctl mask firewalld.service
- 安裝 iptables 防火墻
- sudo yum install iptables-services -y
- 啟動 iptables
- systemctl enable iptables
- systemctl start iptables
- 編輯防火墻檔案
- sudo vim /etc/sysconfig/iptables
- 添加埠(添加下述配置)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
- 重啟 iptables 使新埠生效
- systemctl restart iptables.service
- 設定防火墻開機啟動
- systemctl enable iptables.service
=====================================================
六. 驗收
- 激活tensorflow環境
- conda activate tensorflow
- 開啟jupyter notebook (可以添加禁止掛起和后臺執行命令)
- nohup jupyter notebook &
- 在遠程客戶機(讀者的另外一臺電腦,比如筆記本)瀏覽器輸入 192.168.1.100:8888 (實際IP地址根據讀者機器的地址修改),輸入前面設定的密碼后即可連接成功
- 驗證是否成功安裝了tensoflow,以及成功識別GPU設備

七. 福利(救命稻草 ??)
如果在使用 tensorflow 程序中出現Error : Failed to get convolution algorithm,這是因為顯卡記憶體被耗盡了(按照本檔案安裝可以排除cuda版本沖突的可能),可以在代碼的最開始輸入下面兩行配置
- physical_device = tf.config.experimental.list_physical_devices("GPU")
- tf.config.experimental.set_memory_growth(physical_device[0], True)
=====================================================
至此,我們就完成了從零開始搭建一套深度學習主機的全部作業,希望這篇教程可以幫助讀者順利地搭建好自己的深度學習平臺,
如果有任何紕漏差錯,歡迎評論互動,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/49873.html
標籤:其他
上一篇:求解,在Windows虛擬環境中安裝nose后,如圖進行測驗,一直顯示run 0 tests in,怎么辦
下一篇:使用send_mail發送郵件報編碼錯誤UnicodeEncodeError: 'ascii' codec can't encode characters in
