1. 程式人生 > >Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度學習環境配置

Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度學習環境配置

uri onf 設備 har import strong sof 比較 理論

目錄

  • 一、Ubuntu18.04 LTS系統的安裝
    • 1. 安裝文件下載
    • 2. 制作U盤安裝鏡像文件
    • 3. 開始安裝
  • 二、設置軟件源的國內鏡像
    • 1. 設置方法
    • 2.關於ubuntu鏡像的小知識
  • 三、Nvidia顯卡驅動的安裝
    • 1. 首先查看顯卡型號和推薦的顯卡驅動
    • 2. 安裝nvidia-390版本驅動
    • 3. 重啟系統,可以查看安裝是否成功
  • 四、CUDA9.0的安裝
    • 1. CUDA版本選擇
    • 2. 安裝CUDA9.0
    • 3. 設置環境變量
  • 五、cuDNN7.3的安裝
  • 六、Tensorflow-1.12的安裝
    • 1. Python開發環境配置.
    • 2. 創建Python虛擬環境
    • 3. 建立軟鏈接
    • 4. 安裝Tensorflow
  • 七、Jupyter notebook的安裝配置

此篇博文針對零基礎的同學所撰寫,基本屬於step-by-step。需要註意的是:目前CUDA已經到了CUDA10.0版本,但遺憾的是目即使最新的Tensorflow1.12也暫時只支持CUDA9.0,因此,我們選擇9.0版本進行安裝。當然,如果實在想嘗鮮,可以通過tensorflow的源碼安裝,需要自己編譯,我們將在另外文章中專門介紹,這裏不詳述。

一、Ubuntu18.04 LTS系統的安裝

1. 安裝文件下載

登陸ubuntu官網(https://www.ubuntu.com/index_kylin),點擊“Download”選項,會出現下載頁面,我們選擇ubuntu 18.04 LTS Desktop版本,跟16.04LTS版本一樣,這是一個長期維護版本(想嘗鮮的可以選擇18.10,但不建議這麽做)。一般下載速度很快(我平時網速不太理想的情況下都達到了4M速度),下載文件的全名為:ubuntu-18.04.1-desktop-amd64.iso,大概1.81GB.

技術分享圖片

2. 制作U盤安裝鏡像文件

  • (1) 首先下載U盤啟動文件制作工具,這裏我們用rufus,官網(https://rufus.ie/, 貌似直接點擊這個網站會出現404錯誤,但是百度搜索rufus,第一條就是rufus官網), 默認打開下載英文版(也可以選擇下載中文版),這是個綠色軟件,不需要安裝,我們選擇下載最新的rufus 3.3版本。
  • (2)打開rufus-3.3.exe,如果沒什麽意外的話,在rufus軟件界面中的設備一欄應該出現我們插入電腦的U盤的盤符(比如這裏的YPZHAI),如果沒有找到的話說明U盤沒有正確插入或出現了其它問題。點擊“選擇”按鈕,選取我們剛下載好的“ubuntu-18.04.1-desktop-amd64.iso”,其它設置采用默認值即可。點擊“開始”,會彈出一個通知對話框,直接點擊“是”,進入下一步,選擇默認的“以ISO鏡像模式寫入”,點擊進入下一步,會警告你U盤上的數據會被全部清空,選擇“是”,大概等待1分鐘左右,安裝U盤應該已經制作好。

技術分享圖片
技術分享圖片

技術分享圖片

3. 開始安裝

  • (1)插入U盤,啟動電腦,按下“F2”(不同的電腦按鍵不同,請仔細查看啟動界面上的提示)進入BIOS設置界面,在啟動項(Boot Priority)選擇從U盤啟動(不同的主板顯示可能不一樣),保存退出。
  • (2)開始安裝,一般會讓選擇語言、鍵盤布局等(選擇默認即可),在選擇“Updates and other software”時,選擇"Normal installation",這樣一些常用的軟件就默認安裝上了。在“Installation type”中,如果不打算安裝雙系統,直接選擇第一個“Erase ****”,這樣電腦上原先的系統以及相關文件數據等都將全部刪除,因此在此之前一定要備份好重要數據!接下來進入“Where are you”時區選擇,選擇“shanghai”即可,下一步讓你輸入你的名字、電腦名、用戶名、以及密碼等。輸入完畢,正式進入安裝流程,整個過程大概需要20分鐘左右。

二、設置軟件源的國內鏡像

1. 設置方法

Ubuntu在安裝軟件的過程中,默認從其官方源下載,但由於國內網絡的原因,往往很慢。因此為了加快安裝速度,建議設置國內鏡像。在ubuntu系統中,軟件源記錄在/etc/apt/source.list文件中,因此,我們只需要將要加入的國內鏡像的地址寫入這個文件即可,在寫入之前記得備份一下原始的內容。

sudo cp /etc/apt/source.list /etc/apt/source.list.bak  # 備份
sudo gedit /etc/apt/source.list                        # 用gedit打開source.list文件

將下述內容全部拷貝到source.list文件的頭部,保存退出。

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-get update

等待片刻,軟件源更新完成,這樣采用apt-get install方式安裝軟件時將優先從上述國內鏡像地址尋找軟件源,速度將快不少。到此,如果你不想了解關於國內鏡像的知識,可以直接進入下一節開始顯卡驅動的安裝,如果想了解ubuntu的鏡像知識,可以繼續往下看。

2.關於ubuntu鏡像的小知識

首先,簡單介紹下關於Ubuntu的source.list文件的內容,該文件在/etc/apt/目錄下,它記錄了ubuntu軟件更新的源的地址及目錄,默認是ubuntu的官方源,source.list文件內容的具體含義如下:

1 2 3 4 5 6 7
deb url 版本代號(比如xenial) main restricted universe multiverse
deb-src url 版本代號(比如xenial) main restricted universe multiverse

上述格式中,第1列為deb或deb-src,分別代表直接通過.deb文件進行安裝和通過source code源文件進行安裝兩種方式;第2列為URL地址,比如ubuntu官方源的地址為http://archive.ubuntu.com/ubuntu/,第3列為版本代號,具體見下表(這裏只給出.04版本的,其它版本可以自己取查看),一般只取代號的第一個單詞(比如16.04版本只取Xenial這個單詞),需要註意的是版本一般有5個不同的類別(這裏以xenial為例說明,一般有xenial, xenial-updates, xenial-security,xenial-proposed xenial-backports,一個類別一條記錄,實際上是一個文件夾),從第4列到第7列為版本代號文件夾下不同的文件夾的名稱(一般也有4個不同的文件夾,分別為:main,restricted,universe,multiverse,其具體意義見下表),當然第4到第7列是並列關系,完全可以每個文件夾一條記錄,也可以並列在一起。

版本號 版本代號
14.04 Trusty Tahr (可靠的塔爾羊)
15.04 Vivid Vervet (活潑的小猴)
16.04 Xenial Xerus (好客的非洲地松鼠)
17.04 Zesty Zapus(開心的跳鼠)
18.04 Bionic Beaver(仿生海貍)
文件夾名 意義
main 完全的自由軟件
restricted 不完全的自由軟件
universe 官方不提供支持與補丁,全靠社區支持
multiverse 非自由軟件,完全不提供支持和補丁

下面分別給出18.04版本的官方源、阿裏雲源、以及清華的源

  1. 官方源
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
  1. 阿裏雲源
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
  1. 清華的源
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main multiverse restricted universe

三、Nvidia顯卡驅動的安裝

1. 首先查看顯卡型號和推薦的顯卡驅動

ubuntu-drivers devices

技術分享圖片
從輸出的信息看到推薦的是nvidia-driver-390的驅動,因此我們安裝nvidia-390驅動。需要註意的是有個奇怪的現象就是在中斷輸入上述命令,有可能得到不同的推薦,比如有可能推薦384或396或410驅動,在16.04系統上,我們安裝384驅動比較保險,在18.04系統上,理論上也沒問題,這裏我們還是按照系統推薦,安裝390驅動。

2. 安裝nvidia-390版本驅動

# 將系統中存在的nvidia驅動全部卸載掉(如果有的話)
sudo apt-get purge nvidia*

# 添加ppa源並更新
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update

# 安裝nvidia-390版本
sudo apt-get install nvidia-390

安裝速度取決於下載速度,還是有點慢,但勉強接受,如果安裝失敗,可以再試1次。安裝完畢記得一定要重啟系統。

3. 重啟系統,可以查看安裝是否成功

nvidia-smi

如果出現如下信息,說明驅動安裝成功。
技術分享圖片

四、CUDA9.0的安裝

1. CUDA版本選擇

目前CUDA已經到了CUDA10.0版本,但遺憾的是目即使最新的Tensorflow1.12也暫時只支持CUDA9.0,因此,我們選擇9.0版本進行安裝。當然,如果實在想嘗鮮,可以通過tensorflow的源碼安裝,需要自己編譯,我們將在另外文章中專門介紹,這裏不詳述。

這裏需要註意的是:在nvidia的官網上,我們發現CUDA9.0的ubuntu版本只有16.04和17.04的,而沒有18.04的(CUDA10.0有18.04版本),不過沒關系,經過測試發現17.04版本在18.04版本上能正常安裝並運行,因此這裏我們選擇下載17.04版本的(16.04的沒有測試,理論上應該也是沒有問題的)。

技術分享圖片

2. 安裝CUDA9.0

首先從Nvidia官網下載cuda-repo-ubuntu1704-9-0-176-local-patch-4_1.0-1_amd64.deb和 4個補丁 文件。安裝步驟如下:

Step1:切換到下載好的文件目錄,並安裝meta-data

sudo dpkg -i cuda-repo-ubuntu1704-9-0-176-local-patch-4_1.0-1_amd64.deb

Step2: 安裝CUDA的GPG Public Key

sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub

Step3:更新APT源

sudo apt-get update

Step4:安裝CUDA

sudo apt-get install cuda

Step5:安裝補丁

sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update-2_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1704-9-0-local-cublas-performance-update-3_1.0-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1704-9-0-176-local-patch-4_1.0-1_amd64.deb
sudo apt-get update
sudo apt-get upgrade cuda

當然,不安裝上述補丁對後續的安裝也應該沒多大影響,但是建議還是把上述4個補丁全部安裝,這對系統運行的性能可能有所提升。

3. 設置環境變量

在 ~/.bashrc中設置環境變量:

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda

運行如下命令使得環境變量生效

source ~/.bashrc

測試環境變量是否生效,可以運行一下nvidia的查看CUDA版本的命令

nvcc --version

技術分享圖片
如果出現上述信息,說明環境變量設置生效。

五、cuDNN7.3的安裝

這裏我們選擇下載cuDNN v7.3 for CUDA9.0版本(子項為cuDNN v7.3 Library for Linux),安裝包為cudnn-9.0-linux-x64-v7.3.1.20.tgz。

Step1: 解壓

tar -zxvf cudnn-9.0-linux-x64-v7.3.1.20.tgz

在當前目錄下會生成cuda目錄

Step2:將cudnn.h文件和lib文件拷貝到CUDA的安裝目錄下

sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

註意上面第二行命令中的-d不能少,否則會提示.so不是symbol link。

Step3:賦予執行權限

sudo chmod a+x /usr/local/cuda/include/cudnn.h
sudo chmod a+x /usr/local/cuda/lib64/libcudnn*

經過上述步驟,就基本配置好了系統以及CUDA環境,下面我們就可以安裝配置Tensorflow框架了

六、Tensorflow-1.12的安裝

1. Python開發環境配置.

首先,我們要確保系統中安裝了如下Python環境:
python3, pip3,以及 virtualenv,在命令行查詢相應的版本

python3 --version
pip3 --version
virtualenv --version

如果提示沒有安裝,則用如下命令安裝:

sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install -U virtualenv

2. 創建Python虛擬環境

python的虛擬環境用來隔離系統和相應的安裝包,這非常有利於不同版本之間的隔離,總之好處多多,尤其是不同的項目使用不同的軟件版本時,能避免令人頭痛的版本混亂問題,強烈建議安裝虛擬環境。安裝命令如下:

virtualenv --system-site-packages -p python3 ./venv

上述命令的意思是創建一個虛擬環境(該虛擬環境文件被放置到venv目錄下),該環境使用python3,並且將python3下已經安裝的包都復制過來(--system-site-packages),如果選擇不復制python3下已經安裝的包,則使用--no-site-packages,這樣,已經安裝到系統python環境中的所有第三方包都不會復制過來,這樣就會得到一個不帶任何第三方包的“幹凈”的python運行環境。這裏我們選擇復制python3下已經安裝的軟件包。

如果要使用,則用下述命令激活該虛擬環境

source ./venv/bin/activate

如果環境激活,則shell命令行前面會出現(venv)。
在該虛擬環境下安裝任何軟件包都不會影響系統python環境。如果要退出該虛擬環境,則在命令行執行即下述命令可退出該虛擬環境。

deactivate

3. 建立軟鏈接

為了使用方便,我們可以建立一個軟鏈接,假設我們的虛擬環境安裝的絕對路徑是/home/scek/Project/venv/,則激活的shell命令的絕對路徑是/home/scek/Project/venv/bin/activate。一般我們啟動終端的時候,會默認在/home/scek/目錄下,在這個目錄下建立軟鏈接,鏈接名稱假設為venv,則用下面命令:

ln -s ./Project/venv/bin/activate  venv

建立軟鏈接之後,一啟動終端,就可以直接輸入:

source venv

即可激活虛擬環境,對比原始命令

source ./Project/venv/bin/activate

方便了不少。

4. 安裝Tensorflow

安裝很簡單,執行如下命令即可:

pip install tensorflow-gpu

上述命令會安裝最新的release版本(目是1.12版本),如果要指定安裝版本,則采用如下命令

pip install tensorflow-gup = 1.10

但是由於國內網絡環境問題,安裝速度慢的無法忍受,這裏我們推薦采用清華的pypi鏡像進行安裝:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu

測試安裝是否成功

python -c "import tensorflow as tf; print(tf.__version__)"

如果安裝成功,則會輸出當前的版本。
為了方便其他pip包安裝的方便,我們可以將pypi源永久修改,免得每次都要輸入鏡像地址:

首先在當前用戶目錄下新建~/.pip/pip.conf

mkdir .pip
sudo vim .pip/pip.conf

將下述內容寫入pip.conf文件中並保存

[global]
index-url = https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host=mirrors.aliyun.com

這裏我們采用了阿裏雲的pypi源,也可以采用其它的源:

https://pypi.tuna.tsinghua.edu.cn/simple    # 清華
http://mirrors.aliyun.com/pypi/simple/      # 阿裏雲
https://pypi.mirrors.ustc.edu.cn/simple/    # 中國科技大學 
http://pypi.hustunique.com/                 # 華中理工大學
http://pypi.sdutlinux.org/                  # 山東理工大學
http://pypi.douban.com/simple/              # 豆瓣

七、Jupyter notebook的安裝配置

寫python代碼,可以采用的工具有很多:

  1. 直接在命令行輸入python,即可進入python開發環境
  2. 用第三方代碼編輯器,推薦使用sublime text3。 或者用第三方IDE工具, 比如Pycharm, 但是這個軟件很耗內存,IDE工具的優點和缺點基本都有,個人不太喜歡使用這個IDE。
  3. 使用Jupyter Notebook. Jupyter Notebook(此前被稱為 IPython notebook)是一個交互式筆記本,支持運行 40 多種編程語言。是非常友好的一款開發工具,尤其適用於代碼測試,編寫交互式文檔,等等。需要註意的是,因為我們將tensorflow等工具安裝在venv虛擬環境下,因此,為了在jupyter中正常使用tensorflow,就必須做一些額外的工作,下面給出具體步驟:

(1)step1:安裝jupyter notebook

sudo pip install jupyter

(2)step2:進入venv虛擬環境(註意必須進入虛擬環境),設置kernel

pip install ipykernel
python -m ipykernel install --user --name=tensorflow

上述--name=tensorflow是設置顯示的環境名稱,當然可以起一個任意的名字。
(3)Step3:啟動jupyter

jupyter notebook

啟動之後,在new新文件時可以選擇tensorflow作為內核即可。

通過上述步驟,我們已經完全配置了深度學習所需的基本環境,可以在深度學習的海洋中遨遊了。

Ubuntu18.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook深度學習環境配置