對于計算機視覺,深度學習是一個您始終繞不開的話題刹衫,本文將告訴您如何從零開始搭建一個友好的可塑性的計算機視覺環(huán)境斟冕,當然它也支持深度學習乱顾。為什么要從零開始搭建環(huán)境呢?因為宫静,別人建立的環(huán)境也許并不適合您,而您想要改變其的環(huán)境也許會花費很多時間還不一定有用券时。為了解決您的這個煩惱孤里,本文考慮搭建一個具有可以定制性并可以靈活改變環(huán)境的計算機視覺工具集。因為深度學習在計算機視覺中占據(jù)十分重要的地位橘洞,所以本文將以深度學習為基礎進行工具集組裝捌袜。
1 在您的機器上搭建一個深度學習環(huán)境
本文考慮分別在 Windows10 與 Ubuntu18.04 這兩個系統(tǒng)上搭建深度學習環(huán)境。下面提到的軟件包的具體功能先不說明炸枣,先安裝配置好之后再一一闡述其功能虏等。
1.1 在 Windows10 上配置軟件工具
由于 Windows10 系統(tǒng)的配置相對于 Ubuntu來說是簡單的,所以我們先考慮 Windows10适肠。首先霍衫,我們需要下載一些必備軟件:
- 下載 Anaconda,選擇 Anaconda 2019.10 for Windows Installer-Python 3.7 版本侯养。下載地址:https://repo.anaconda.com/archive/Anaconda3-2019.10-Windows-x86_64.exe敦跌。
- 進入 CUDA 下載頁面 https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_411.31_win10,依次選擇
Windows
逛揩,x86_64
柠傍,10
麸俘,exe (local)
進行下載。具體是操作界面見 圖1惧笛。 - 進入 https://developer.nvidia.com/cudnn 網(wǎng)站下載深度學習加速庫 cudnn从媚。依次選擇選擇
Download cuDNN v7.6.4 (September 27, 2019), for CUDA 10.0
,cuDNN Library for Windows 10
進行下載患整。 - 進入網(wǎng)站 https://code.visualstudio.com/Download 下載 vscode拜效,依次選擇
Windows
,System Installer 64 bit
并级。 - 進入網(wǎng)站 https://git-scm.com/download/win 選擇
64-bit Git for Windows Setup
版本下載 Git拂檩。
這些軟件下載好之后,按照提示進行安裝即可嘲碧。不過稻励,安裝過程中可能出現(xiàn)一些選項需要按照本文接下來展示的圖示進行操作。
- 安裝 CUDA 時愈涩,需要選擇安裝選項為
自定義(高級)
望抽,見圖示2。
- 安裝 CuDNN 時履婉,只需要解壓
cudnn-10.0-windows10-x64-v7.6.4.38.zip
到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
目錄之下煤篙。接著,設置Path
的環(huán)境變量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
毁腿。安裝完畢之后辑奈,打開 Power Shell 輸入nvcc -V
驗證是否與圖3 顯示一致。如果一致已烤,恭喜您安裝完成鸠窗!
- 安裝 Anaconda 需要注意按照圖4 選擇將 Anaconda 添加到環(huán)境變量。安裝完成之后胯究,找到開始菜單中的
Anaconda Navigator
圖標(即圖示5)便可以使用 Anaconda稍计。
- 為了將 Git 與 vscode 緊密結合,需要先安裝 vscode裕循,再安裝 Git臣嚣。為了方便 vscode 更好的管理您的文件,安裝 vscode 時需要按照圖6 進行選擇剥哑。安裝 Git 需要按照圖7 進行選擇將 vscode 作為 Git 的默認編輯器硅则。
這樣 vscode 與 Git 緊密結合在一起了。
1.2 在 Ubuntu18.04 上配置軟件工具
在 Ubuntu 系統(tǒng)上搭建深度學習系統(tǒng)是很多人的噩夢株婴,為了大家少走彎路抢埋,趕走噩夢,本文接下來介紹如何從安裝 Ubuntu 開始搭建 Ubuntu 深度學習環(huán)境。和 Windows10 一樣揪垄,我們同樣需要先下載一些必備軟件:
- 下載 Anaconda穷吮,選擇 Anaconda 2019.10 for Linux Installer-Python 3.7 版本。下載地址:https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh饥努。
- 進入 http://releases.ubuntu.com/18.04.3/ubuntu-18.04.3-desktop-amd64.iso?_ga=2.24617210.1526475460.1572400189-783137433.1571993488 網(wǎng)站下載 Ubuntu 鏡像捡鱼,選擇 Ubuntu 18.04.3 LTS 版本進行下載。
- 進入網(wǎng)站 https://developer.nvidia.com/cuda-10.0-download-archive 下載 CUDA酷愧,依次選擇
Linux
驾诈,x86_64
,18.04
溶浴,runfile (local)
乍迄,之后下載 Base Installer(下載地址:https://developer.nvidia.com/compute/cuda/10.0/Prod/local_installers/cuda_10.0.130_410.48_linux) 與 Patch 1(下載地址:http://developer.download.nvidia.com/compute/cuda/10.0/Prod/patches/1/cuda_10.0.130.1_linux.run) - 進入網(wǎng)站 https://rufus.ie/zh_CN.html 下載 rufs,用于制作 Ubuntu 啟動盤
- 下載 cudnn(https://developer.nvidia.com/cudnn):深度學習加速庫士败。依次選擇選擇
Download cuDNN v7.6.4 (September 27, 2019), for CUDA 10.0
闯两,cuDNN Runtime Library for Ubuntu18.04 (Deb)
進行下載。
如果您的下載速度很慢谅将,您可以考慮使用 IDM(https://www.internetdownloadmanager.com/)漾狼,該軟件被人戲稱為國外的迅雷,它的下載速度是很快的饥臂。
下載好軟件之后逊躁,我們需要使用 U 盤制作一個 Ubuntu 啟動盤。
我們使用 rufs 制作 Ubuntu 啟動盤:
- 雙擊 rufs 軟件包隅熙,彈出的界面稽煤,設置如下:
制作完畢關閉 rufs 軟件,并彈出 U 盤囚戚。
- 關閉待安裝的機器酵熙,之后上插入 U 盤,再啟動機器弯淘,選擇
Install Ubuntu
,即如圖界面:
- 進入安裝界面:
- 選擇系統(tǒng)語言為中文:
- 不斷點擊繼續(xù)吉懊,直至出現(xiàn)如下界面庐橙,選擇
清除整個磁盤并安裝 Ubuntu
(如果您想要安裝雙系統(tǒng),可選擇安裝 Ubuntu借嗽,與其他系統(tǒng)共存
):
- 接著按照界面的提示進行操作即可态鳖。直到提示您重啟電腦時,您點擊確認恶导,之后等到屏幕關閉拔掉 U 盤浆竭,讓機器自動重啟。如此,您便完成了 Ubuntu 的安裝邦泄。
電腦重啟之后需要配置網(wǎng)絡連接删窒,配置好之后,我們需要做一些準備工作顺囊。
- 智能升級肌索。安裝新軟件包并刪除廢棄的軟件包:
$ sudo apt-get dist-upgrade
$ sudo apt-get autoremove
- 刪除一些不需要的內置軟件:
$ sudo apt-get remove libreoffice-common
$ sudo apt-get remove unity-webapps-common
$ sudo apt-get autoremove
- 啟用圖標點擊最小化操作:
$ gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
- 更新和升級系統(tǒng)
$ sudo apt update
$ sudo apt upgrade
- 安裝 Git
$ sudo apt-get install git
配置 git 的兩個重要信息,user.name
和 user.email
特碳,終端輸入如下命令即可設置
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
- 支持掛載 exfat
$ sudo apt-get install exfat-fuse
- 安裝 g++ gcc 開發(fā)必備編譯庫(為之后安裝 CUDA 做準備)
$ sudo apt-get install build-essential
- 為了支持 ssh server诚亚,需要:
$ sudo apt-get install openssh-server
$ sudo /etc/init.d/ssh start
$ sudo service ssh start
- 為了防止 Ubuntu 系統(tǒng)被玩壞了,我們需要一個可以進行備份和還原的工具:TimeShift
$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt update
$ sudo apt install timeshift
- 接著午乓,我們需要安裝 Anaconda:
$ sh Anaconda3-2019.10-Linux-x86_64.sh
安裝過程中需要注意選擇 conda init
以方便我們管理 Python 環(huán)境:
設置圖1.6 選擇為 yes
站宗,則將 Ubuntu 系統(tǒng)的 Python 環(huán)境設置為 Anaconda,如果您還想要使用原來的 Python 環(huán)境益愈,可以這樣:
$ conda config --set auto_activate_base false
Anaconda 的打開使用命令:anaconda-navigator
梢灭。
- 最后,我們還需要安裝 vscode:
$ sudo dpkg -i code_1.39.2-1571154070_amd64.deb
vscode 的打開使用命令 code
即可腕唧。
OK! Ubuntu 系統(tǒng)的深度學習基礎環(huán)境已經(jīng)搭建完畢或辖!下面我們需要安裝 CUDA 與 cuDNN。
因為安裝 CUDA 是一個很危險的行為枣接,設置出錯很容易把系統(tǒng)玩崩颂暇,所以我們可以先使用 TimeShift 備份當前系統(tǒng)。做深度學習但惶,要用到 NVIDIA 的顯卡耳鸯,因此需要改顯卡驅動,禁用nouveau
膀曾。即以管理員是身份打開 /etc/modprobe.d/blacklist.conf
文件县爬,然后添加內容:blacklist nouveau #添加數(shù)據(jù)
用來禁用 nouveau
。而打開文件我們可以使用 vscode 進行文件編輯:
$ sudo code /etc/modprobe.d/blacklist.conf
首先進入 CUDA 安裝包所在目錄運行:
$ sudo ubuntu-drivers autoinstall
$ sudo sh cuda_10.0.130_410.48_linux.run
$ sudo sh cuda_10.0.130.1_linux.run
注意:最好不要選擇安裝 OpenGL 庫添谊,否則您可能無法順利安裝 CUDA财喳。如果下載速度很慢可以修改下載源為阿里云。安裝完畢之后斩狱,運行 nvidia-smi
檢查 CUDA 是否安裝正確耳高。
最后需要安裝 cuDNN:
sudo dpkg -i libcudnn7_7.6.4.38+cuda10.0_amd64.deb
1.3 設置清華鏡像
為了提高 pip 與 conda 安裝軟件包的速度,我們需要設置清華鏡像所踊。對于 pip泌枪,Windows10 設置的方法是一樣的,即:
$ pip install --upgrade pip -U # -U == --user
$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
而對于 conda秕岛,在 Windows10 中這樣設置:
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
$ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
$ conda config --set show_channel_urls yes
在 Ubuntu18.04 中設置 conda碌燕,需要借助 vscode 修改用戶目錄下的 .condarc
误证,即 code ~/.condarc
,然后添加如下內容:
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
2 安裝深度學習框架
在安裝深度學習框架之前修壕,我們先了解一下 Anaconda: 一個用于科學計算的 Python 發(fā)行版愈捅,支持 Linux, Mac, Windows, 包含了眾多流行的科學計算、數(shù)據(jù)分析的 Python 包叠殷。
Anaconda 提供了十分強大的 Python 環(huán)境與包的管理機制改鲫,本小節(jié)我們將利用它這一特性來說明如何在同一臺機器上創(chuàng)建多個深度學習框架。由于深度學習框架的安裝在 Windows10 與 Ubuntu 18.04 上是一樣的林束,所以下面我便不在言明是在哪個系統(tǒng)上進行操作了像棘。
如果我們想要使用和管理多個框架,如果將它們均安裝在同一環(huán)境之下壶冒,往往很容易發(fā)生包的沖突問題缕题。因而,為了讓深度學習框架之間不發(fā)生沖突胖腾,我們需要借助 conda
對 Python 的環(huán)境進行管理烟零。下面我們看看如何創(chuàng)建新的 Python 環(huán)境:
- 打開
Anaconda Navigator
并依次選擇Environments
,Create
咸作,接著輸入環(huán)境的名字并選擇 Python 版本:
下面以 TensorFlow 為例锨阿,說明如何安裝包。
- 在新創(chuàng)建的環(huán)境中打開終端:
然后记罚,在終端輸入命令:
$ pip install tensorflow-gpu
完成 TensorFlow 框架的 GPU 版本安裝墅诡。
我們不僅僅滿足于在終端運行 Python 程序湿刽,如果想要在 Notebook蚌卤,也可以運行新創(chuàng)建的環(huán)境豈不妙哉!
在 tensorflow 環(huán)境的終端輸入:
$ conda install ipykernel
$ python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
$ pip install jupyter
此時涛浙,您在打開 Notebook说庭,則會呈現(xiàn)兩個環(huán)境:tensorflow
與 python 3
然磷。
選擇 tensorflow
,進入 Notebook 編輯界面刊驴,我們測試 GPU 是否可以正常使用:
代碼沒有報錯姿搜,說明 GPU 配置完成。需要注意的是在 Ubuntu 系統(tǒng)上如果測試 GPU 失敗捆憎,您可以嘗試運行如下命令:
$ conda install cudatoolkit=10.0
$ conda install cudnn=7.6
這樣你便可以擁有兩個互不干擾的 jupyter 環(huán)境舅柜!為了方便以后切換不同的深度學習框架,按照上述的步驟分別創(chuàng)建 MXNet攻礼,Pytorch 深度學習環(huán)境业踢。
安裝 MXNet 的命令是:
$ conda install ipykernel
$ python -m ipykernel install --name mxnet --display-name "MXNet"
$ pip install jupyter
$ pip install mxnet-cu100
安裝 Pytorch 的命令是:
$ conda install ipykernel
$ python -m ipykernel install --user --name torch --display-name "Pytorch"
$ pip install jupyter
$ conda install pytorch torchvision cudatoolkit=10.0 -c pytorch
3 橋接 Ubuntu 與 Windows
對于同一個局域網(wǎng)的兩臺機器栗柒,一臺安裝了 Windows10礁扮,一臺安裝了 Ubuntu18.04知举。我們想要利用 SSH 協(xié)議橋接這兩臺機器,對于 Ubuntu 系統(tǒng)我們已經(jīng)配置好了其 SSH Server太伊,而 Windows10 需要我們做一些工作雇锡。
在 Windows Server 2019 或 Windows 10 1809 上的 "設置" UI 安裝 OpenSSH,可參考微軟官方提供的教程:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse僚焦。而對于低版本的系統(tǒng)锰提,則需要下載 https://github.com/PowerShell/Win32-OpenSSH/releases 中的代碼,然后將其解壓并將解壓后的文件目錄添加 Windows 系統(tǒng)的 Path 環(huán)境變量之中芳悲。
$ .\install-sshd.ps1
$ .\FixHostFilePermissions.ps1
詳細內容可參考:https://blog.csdn.net/hanzheng260561728/article/details/72857132立肘。
配置好 SSH Server 之后,我們便可以利用 SSH 連接這兩臺機器了名扛。
比如谅年,我們在 Windows10 系統(tǒng)打開 PowerShell 并使用 SSH 連接 Ubuntu18.04 的機器:
$ ssh xinet@192.168.42.7
其中 xinet@192.168.42.7
的組成是 用戶名@IP地址
。
這樣你便可以像圖 18 那樣使用 Ubuntu 系統(tǒng)的終端進行操作:
對于圖18 需要做如下解釋:
-
conda activate pytorch
啟動我們之前創(chuàng)建的 Pytorch 環(huán)境 -
pip install
或者conda install
是用來安裝 Python 包的命令肮韧。 - 待您在終端的操作完成之后融蹂,需要使用命令
exit
退出 ssh 連接。
4 Ubuntu 多用戶共享使用深度學習環(huán)境
我們可以使用命令 sudo adduser 用戶名
的方式創(chuàng)建新用戶弄企。創(chuàng)建新用戶之后超燃,便可以令其使用共享環(huán)境。比如我們在用戶 A 之中配置了深度學習環(huán)境拘领,而用戶 B 想要使用用戶 A 的深度學習環(huán)境只需要運行命令 source /home/A/.bashrc
即可激活深度學習環(huán)境意乓。
情景:我們不想建立遠程桌面且又想要使用 Ubuntu 系統(tǒng)的 Jupyter Notebook,該怎么辦院究?
我們可以使用 MobaXterm
軟件來解決該情景問題洽瞬。具體操作方法:
- 進入網(wǎng)站 https://mobaxterm.mobatek.net/download.html 下載軟件。安裝好之后业汰,創(chuàng)建一個 Session伙窃,見圖19:
點擊 OK
之后,進入 Ubuntu 系統(tǒng)下的用戶 B 所在賬戶下的終端样漆。雖然這是一個終端为障,但是此終端還可以做一些仿真的工作,比如打開 Jupyter Notebook:
是不是很神奇放祟?不僅僅如此呢鳍怨,這里打開了一個瀏覽器服務器,您可以在此瀏覽器之中下載東西跪妥,然后將您下載的東西拖曳回您的 Windows 系統(tǒng)鞋喇。更多精彩內容您可以查看 MobaXterm
官方網(wǎng)站進行了解。