6 搭建一個友好的可塑性計算機視覺工具集

對于計算機視覺,深度學習是一個您始終繞不開的話題,本文將告訴您如何從零開始搭建一個友好的可塑性的計算機視覺環境,當然它也支持深度學習。為什么要從零開始搭建環境呢?因為,別人建立的環境也許并不適合您,而您想要改變其的環境也許會花費很多時間還不一定有用。為了解決您的這個煩惱,本文考慮搭建一個具有可以定制性并可以靈活改變環境的計算機視覺工具集。因為深度學習在計算機視覺中占據十分重要的地位,所以本文將以深度學習為基礎進行工具集組裝。

1 在您的機器上搭建一個深度學習環境

本文考慮分別在 Windows10 與 Ubuntu18.04 這兩個系統上搭建深度學習環境。下面提到的軟件包的具體功能先不說明,先安裝配置好之后再一一闡述其功能。

1.1 在 Windows10 上配置軟件工具

由于 Windows10 系統的配置相對于 Ubuntu來說是簡單的,所以我們先考慮 Windows10。首先,我們需要下載一些必備軟件:

圖1 CUDA 下載的選擇界面

這些軟件下載好之后,按照提示進行安裝即可。不過,安裝過程中可能出現一些選項需要按照本文接下來展示的圖示進行操作。

  1. 安裝 CUDA 時,需要選擇安裝選項自定義(高級),見圖示2。
圖2 安裝 CUDA 時需要選擇 自定義
  1. 安裝 CuDNN 時,只需要解壓 cudnn-10.0-windows10-x64-v7.6.4.38.zipC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 目錄之下。接著,設置 Path 的環境變量:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64。安裝完畢之后,打開 Power Shell 輸入 nvcc -V 驗證是否與圖3 顯示一致。如果一致,恭喜您安裝完成!
圖3 驗證 nvcc 是否正確安裝
  1. 安裝 Anaconda 需要注意按照圖4 選擇將 Anaconda 添加到環境變量。安裝完成之后,找到開始菜單中的 Anaconda Navigator 圖標(即圖示5)便可以使用 Anaconda。
圖4 Anaconda 安裝
圖5 找到 Anaconda 啟動的圖標
  1. 為了將 Git 與 vscode 緊密結合,需要先安裝 vscode,再安裝 Git。為了方便 vscode 更好的管理您的文件,安裝 vscode 時需要按照圖6 進行選擇。安裝 Git 需要按照圖7 進行選擇將 vscode 作為 Git 的默認編輯器。
圖6 選擇方便 vscode 管理的選項
圖7 將 vscode 作為 Git 的默認編輯器

這樣 vscode 與 Git 緊密結合在一起了。

1.2 在 Ubuntu18.04 上配置軟件工具

在 Ubuntu 系統上搭建深度學習系統是很多人的噩夢,為了大家少走彎路,趕走噩夢,本文接下來介紹如何從安裝 Ubuntu 開始搭建 Ubuntu 深度學習環境。和 Windows10 一樣,我們同樣需要先下載一些必備軟件:

如果您的下載速度很慢,您可以考慮使用 IDM(https://www.internetdownloadmanager.com/),該軟件被人戲稱為國外的迅雷,它的下載速度是很快的。

下載好軟件之后,我們需要使用 U 盤制作一個 Ubuntu 啟動盤。

我們使用 rufs 制作 Ubuntu 啟動盤:

  1. 雙擊 rufs 軟件包,彈出的界面,設置如下:
圖8 rufs 軟件界面

制作完畢關閉 rufs 軟件,并彈出 U 盤。

  1. 關閉待安裝的機器,之后上插入 U 盤,再啟動機器,選擇 Install Ubuntu,即如圖界面:
圖9 進入安裝界面
  1. 進入安裝界面:
圖10 開始安裝
  1. 選擇系統語言為中文
圖11 選擇系統語言為簡體中文
  1. 不斷點擊繼續,直至出現如下界面,選擇清除整個磁盤并安裝 Ubuntu(如果您想要安裝雙系統,可選擇 安裝 Ubuntu,與其他系統共存):
圖12 選擇安裝的磁盤
  1. 接著按照界面的提示進行操作即可。直到提示您重啟電腦時,您點擊確認,之后等到屏幕關閉拔掉 U 盤,讓機器自動重啟。如此,您便完成了 Ubuntu 的安裝。

電腦重啟之后需要配置網絡連接,配置好之后,我們需要做一些準備工作。

  1. 智能升級。安裝新軟件包并刪除廢棄的軟件包:
$ sudo apt-get dist-upgrade
$ sudo apt-get autoremove
  1. 刪除一些不需要的內置軟件:
$ sudo apt-get remove libreoffice-common
$ sudo apt-get remove unity-webapps-common
$ sudo apt-get autoremove
  1. 啟用圖標點擊最小化操作:
$ gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'
  1. 更新和升級系統
$ sudo apt update
$ sudo apt upgrade
  1. 安裝 Git
$ sudo apt-get install git

配置 git 的兩個重要信息,user.nameuser.email,終端輸入如下命令即可設置

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
  1. 支持掛載 exfat
$ sudo apt-get install exfat-fuse
  1. 安裝 g++ gcc 開發必備編譯庫(為之后安裝 CUDA 做準備)
$ sudo apt-get install build-essential
  1. 為了支持 ssh server,需要:
$ sudo apt-get install openssh-server
$ sudo /etc/init.d/ssh start
$ sudo service ssh start
  1. 為了防止 Ubuntu 系統被玩壞了,我們需要一個可以進行備份和還原的工具:TimeShift
$ sudo apt-add-repository -y ppa:teejee2008/ppa
$ sudo apt update
$ sudo apt install timeshift
  1. 接著,我們需要安裝 Anaconda:
$ sh Anaconda3-2019.10-Linux-x86_64.sh

安裝過程中需要注意選擇 conda init 以方便我們管理 Python 環境:

圖13 運行 conda init

設置圖1.6 選擇為 yes,則將 Ubuntu 系統的 Python 環境設置為 Anaconda,如果您還想要使用原來的 Python 環境,可以這樣:

$ conda config --set auto_activate_base false

Anaconda 的打開使用命令:anaconda-navigator

  1. 最后,我們還需要安裝 vscode:
$ sudo dpkg -i code_1.39.2-1571154070_amd64.deb

vscode 的打開使用命令 code 即可。

OK! Ubuntu 系統的深度學習基礎環境已經搭建完畢!下面我們需要安裝 CUDA 與 cuDNN。

因為安裝 CUDA 是一個很危險的行為,設置出錯很容易把系統玩崩,所以我們可以先使用 TimeShift 備份當前系統。做深度學習,要用到 NVIDIA 的顯卡,因此需要改顯卡驅動,禁用nouveau。即以管理員是身份打開 /etc/modprobe.d/blacklist.conf 文件,然后添加內容:blacklist nouveau #添加數據 用來禁用 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 發行版,支持 Linux, Mac, Windows, 包含了眾多流行的科學計算、數據分析的 Python 包。

Anaconda 提供了十分強大的 Python 環境與包的管理機制,本小節我們將利用它這一特性來說明如何在同一臺機器上創建多個深度學習框架。由于深度學習框架的安裝在 Windows10 與 Ubuntu 18.04 上是一樣的,所以下面我便不在言明是在哪個系統上進行操作了。

如果我們想要使用和管理多個框架,如果將它們均安裝在同一環境之下,往往很容易發生包的沖突問題。因而,為了讓深度學習框架之間不發生沖突,我們需要借助 conda 對 Python 的環境進行管理。下面我們看看如何創建新的 Python 環境:

  1. 打開 Anaconda Navigator 并依次選擇 EnvironmentsCreate,接著輸入環境的名字并選擇 Python 版本:
圖14 創建一個新環境

下面以 TensorFlow 為例,說明如何安裝包。

  1. 在新創建的環境中打開終端:
圖15 打開新的終端

然后,在終端輸入命令:

$ pip install tensorflow-gpu

完成 TensorFlow 框架的 GPU 版本安裝。

我們不僅僅滿足于在終端運行 Python 程序,如果想要在 Notebook,也可以運行新創建的環境豈不妙哉!

在 tensorflow 環境的終端輸入:

$ conda install ipykernel
$ python -m ipykernel install --user --name tensorflow --display-name "tensorflow"
$ pip install jupyter

此時,您在打開 Notebook,則會呈現兩個環境:tensorflowpython 3

圖16 兩個 Python 環境

選擇 tensorflow,進入 Notebook 編輯界面,我們測試 GPU 是否可以正常使用:

圖17 測試 tensorflow gpu 是否使用正常

代碼沒有報錯,說明 GPU 配置完成。需要注意的是在 Ubuntu 系統上如果測試 GPU 失敗,您可以嘗試運行如下命令:

$ conda install cudatoolkit=10.0
$ conda install cudnn=7.6

這樣你便可以擁有兩個互不干擾的 jupyter 環境!為了方便以后切換不同的深度學習框架,按照上述的步驟分別創建 MXNet,Pytorch 深度學習環境。

安裝 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

對于同一個局域網的兩臺機器,一臺安裝了 Windows10,一臺安裝了 Ubuntu18.04。我們想要利用 SSH 協議橋接這兩臺機器,對于 Ubuntu 系統我們已經配置好了其 SSH Server,而 Windows10 需要我們做一些工作。

在 Windows Server 2019 或 Windows 10 1809 上的 "設置" UI 安裝 OpenSSH,可參考微軟官方提供的教程:https://docs.microsoft.com/zh-cn/windows-server/administration/openssh/openssh_install_firstuse。而對于低版本的系統,則需要下載 https://github.com/PowerShell/Win32-OpenSSH/releases 中的代碼,然后將其解壓并將解壓后的文件目錄添加 Windows 系統的 Path 環境變量之中。

$ .\install-sshd.ps1
$ .\FixHostFilePermissions.ps1

詳細內容可參考:https://blog.csdn.net/hanzheng260561728/article/details/72857132

配置好 SSH Server 之后,我們便可以利用 SSH 連接這兩臺機器了。

比如,我們在 Windows10 系統打開 PowerShell 并使用 SSH 連接 Ubuntu18.04 的機器:

$ ssh xinet@192.168.42.7

其中 xinet@192.168.42.7 的組成是 用戶名@IP地址

這樣你便可以像圖 18 那樣使用 Ubuntu 系統的終端進行操作:

圖18 ssh 橋接 windows 與 ubuntu

對于圖18 需要做如下解釋:

  1. conda activate pytorch 啟動我們之前創建的 Pytorch 環境
  2. pip install 或者 conda install 是用來安裝 Python 包的命令。
  3. 待您在終端的操作完成之后,需要使用命令 exit 退出 ssh 連接。

4 Ubuntu 多用戶共享使用深度學習環境

我們可以使用命令 sudo adduser 用戶名 的方式創建新用戶。創建新用戶之后,便可以令其使用共享環境。比如我們在用戶 A 之中配置了深度學習環境,而用戶 B 想要使用用戶 A 的深度學習環境只需要運行命令 source /home/A/.bashrc 即可激活深度學習環境。

情景:我們不想建立遠程桌面且又想要使用 Ubuntu 系統的 Jupyter Notebook,該怎么辦?

我們可以使用 MobaXterm 軟件來解決該情景問題。具體操作方法:

  1. 進入網站 https://mobaxterm.mobatek.net/download.html 下載軟件。安裝好之后,創建一個 Session,見圖19:
圖19 創建一個 Session

點擊 OK 之后,進入 Ubuntu 系統下的用戶 B 所在賬戶下的終端。雖然這是一個終端,但是此終端還可以做一些仿真的工作,比如打開 Jupyter Notebook:

圖20 在 windows 系統打開 遠端的 Ubuntu 系統的 Jupyter Notebook

是不是很神奇?不僅僅如此呢,這里打開了一個瀏覽器服務器,您可以在此瀏覽器之中下載東西,然后將您下載的東西拖曳回您的 Windows 系統。更多精彩內容您可以查看 MobaXterm 官方網站進行了解。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,156評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,401評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,069評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,873評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,635評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,128評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,203評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,365評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,881評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,733評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,935評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,475評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,172評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,582評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,821評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,595評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,908評論 2 372