從零開始:深度學習軟體環境安裝指南

2021-02-07 機器之心


在搭建深度學習機器之後,我們下一步要做的就是構建完整的開發環境了。本文將向你解釋如何在一臺新裝的 Ubuntu 機器上安裝 Python 和 Nvidia 硬體驅動、各類庫和軟體包。


為了進行強化學習研究,我最近購置了一臺基於 Ubuntu 和英偉達 GPU 的深度學習機器。儘管目前在網絡中能找到一些環境部署指南,但目前仍然沒有全面的安裝說明。另外,我也不得不閱讀了很多文檔來試圖理解安裝細節——其中的一些並不完整,甚至包含語法錯誤。因此,本文試圖解決這個問題,提供一個詳盡的軟體環境安裝指南。


本文將指導你安裝



這些軟體之間的互相依賴關係如下圖所示。其中,你只需要安裝一種深度學習庫,請自由選擇。


深度學習軟體安裝和依賴示意圖


以下是各個軟體的細節介紹:


Ubuntu(v16.04.3)——作業系統,各種任務處理。

Nvidia GPU 驅動(v375)——允許系統獲得 GPU 帶來的加速。

CUDA(v8.0)——GPU C 語言庫。「計算同一設備架構」。

cuDNN(v6.0.21)——基於 CUDA 的深度學習基元庫。「CUDA 深度學習庫」。

pip(v9.0.1)——Python 安裝包。「Pip 安裝包」。

TensorFlow(v1.3)——谷歌開發的深度學習框架。

Theano(v0.9.0)——此前由 MILA 負責維護的深度學習框架。

CNTK(v2.2)——微軟研究院開發的深度學習框架。

Keras(v2.0.8)——深度學習包裝可互換後端。可與 TensorFlow、Theano 和 CNTK 共同使用。

PyTorch(v0.2.0)——可被 GPU 加速的動態圖深度學習框架,主要由 Facebook 的研究人員負責開發。


1. 安裝 Ubuntu 16.04.3


v 16.04.3 可由 USB 啟動的方式安裝,它是最新的 LTS(長期支持)版本。首次在電腦上啟用時,請在 BIOS 中選擇由 USB 引導啟動。


我的電腦中有兩塊硬碟——一塊 1TB 的 SATA 和一塊 256GB 的 SSD。在我的設想中,Ubuntu 被安裝在常規硬碟中,固態硬碟(SSD)用於處理數據集和加速訓練。在安裝過程中,在屏幕中的 Installation Type 中選擇 Something else,隨後我們要進行三個分區操作:


引導分區(128GB):包含系統文件、程序設置和文檔。

交換分區(2 倍的內存大小):對於我來說這就是 128GB。這塊分區的容量用於擴展 Kernel RAM 作為虛擬內存使用。

用戶分區(剩下的部分):1TB 的硬碟剩下的空間大約還有 744GB。


在安裝後,最好先運行以下命令來升級內核版本。


sudo apt-get update

sudo apt-get upgrade


Reference:https://tutorials.ubuntu.com/tutorial/tutorial-install-ubuntu-desktop#0


2. 安裝英偉達 GPU 驅動


在安裝完 Ubuntu 後,你可能會發現屏幕的解析度不對,而且不能修改,這是因為現在還沒有安裝 GPU 驅動。


安裝驅動有兩種方法:從 Ubuntu 資源庫和數據源。第一個方法更加容易,但需要頻繁的重新安裝。使用 sudo apt-get update 和 sudo apt-get upgrade 指令後,系統的內核可以自動升級。但這樣並不會更新英偉達驅動,可能會導致 GUI 無法正確加載。從數據源安裝可以避免這個問題。


從安裝包裡安裝 v375 驅動(簡單的方法)


以下命令會將與你系統相兼容的驅動版本顯示出來,它會提供兩個版本號:最新的不穩定版和長期穩定版。版本號會從頭列起,所以你需要把頁面滾到最上面。


sudo add-apt-repository ppa:graphics-drivers/ppa


添加並安裝資源庫。通過第二個命令,改變你想要安裝的<driver_number>。我們在這裡推薦安裝最新的長期穩定版本——375 版。


sudo apt-get update

sudo apt-get install nvidia-<driver_number>


重啟計算機以重新配置視頻輸出。


sudo shutdown -r now


要測試驅動程序是否工作,Screen Display(SUPERKEY,屏幕顯示類型)現在應該可以識別你使用的顯示器了,你可以修改設置、解析度與方向。


Reference:https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa


從英偉達網站安裝 v384.90(較難的方法)


從英偉達網站下載最新的驅動程序版本。基於硬體配置,我選擇的選項是:


GeForce -> GeForce 10 Series -> GeForce GTX 1080 -> Linux 64 bit -> English (UK)


可選條件:編譯到 32 位架構和 GUI 的開發版本。


sudo apt-get install gcc-multilib xorg-dev


按 CTRL + ALT + F1 鍵登錄,從 GUI 轉至終端。為了重建視頻輸出,必須先將其暫停。


sudo service lightdm stop


如果命令行沒有效果,Ubuntu 新版本使用 systemctl 替換 lightdm。然後使 runfile 可執行,並運行它。


cd <download location>

chmod +x NVIDIA-Linux-x86_64-384.90.run

sudo ./NVIDIA-Linux-x86_64-384.90.run --dkms


運行時,你可能會收到一條 pre-install script failed 信息。這沒什麼影響,因為預安裝腳本包含命令 exit 1,其目標是確保你真的想安裝驅動程序。


選項--dkms(默認開啟)在 kernel 自行更新時將驅動程序安裝至模塊中,從而阻止驅動程序重新安裝。在 kernel 更新期間,dkms 觸發驅動程序重編譯至新的 kernel 模塊堆棧。


如果安裝失敗,則原因在於計算機的 BIOS 未關閉 Secure Boot。重啟電腦,在 BIOS 選項中關閉 Secure Boot。


如果安裝成功,則可以重啟 GUI。


sudo service lightdm start


卸載:sudo ./NVIDIA-Linux-x86_64-384.90.run --uninstall


驗證


確保以下命令能夠識別正確的 GPU 版本


nvidia-smi


確保驅動程序版本號與你安裝的一致


cat /proc/driver/nvidia/version


3. 安裝 CUDA 8.0


從英偉達網站,使用下列系統屬性下載 CUDA 的 runfile(地址:https://developer.nvidia.com/cuda-downloads)。


Linux -> x86_64 -> Ubuntu -> 16.04 -> .deb(network)


導航至.deb 文件的位置後,將該文件解壓縮,更新軟體包列表,使用下列命令安裝 CUDA。


sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

sudo apt-get update

sudo apt-get install cuda


將庫添加至 bash path,這樣就可以使用其他應用找到庫了。


echo 'export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}' >> ~/.bashrc

echo 'export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

source ~/.bashrc


驗證時,使用 nvcc -V 確保 Nvidia C Compiler(nvcc)版本與 CUDA 的版本匹配。


重啟電腦 sudo shutdown -r now,完成安裝。


可選操作:測試 CUDA 安裝


測試安裝的一個方法是運行一些示例。以下命令行創建了一個存儲示例程序的 test_CUDA 目錄。


mkdir test_CUDA

cd test_CUDA

./cuda-install-samples-8.0.sh .


子目錄 NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL 中是 findgllib.mk 文件。該文件的第 61 行 30 列包含了英偉達驅動程序的硬編碼值,該值應從 367 更改成你安裝的驅動程序版本號。


編譯示例


cd ../.. && make


你現在可以在 NVIDIA_CUDA-8.0_Samples 內隨意運行示例。你可以在 NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release 中找到兩個非常有用的腳本:./deviceQuery 可以在使用過程中列印 GPU,./bandwidthTest 可以列印它的帶寬。


Reference:http://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html


4. 安裝 cuDNN 6.0.21


在英偉達網站上註冊開發者項目,同意條款。從下拉菜單中選擇 cuDNN v6.0.21 (April 27, 2017), for CUDA 8.0,並下載:


cuDNN v6.0 Runtime Library for Ubuntu16.04 (Deb)

cuDNN v6.0 Developer Library for Ubuntu16.04 (Deb)

cuDNN v6.0 Code Samples and User Guide for Ubuntu16.04 (Deb)


.deb 優先於.tar,因為.deb 格式更適用於 Ubuntu,可以進行更純淨的安裝。使用下列命令安裝這三個包:


sudo dpkg -i libcudnn6_6.0.21-1+cuda8.0_amd64.deb

sudo dpkg -i libcudnn6-dev_6.0.21-1+cuda8.0_amd64.deb

sudo dpkg -i libcudnn6-doc_6.0.21-1+cuda8.0_amd64.deb


測試 cuDNN


將已安裝的示例複製到可讀目錄,然後編譯並運行 mnistCNN。


cp -r /usr/src/cudnn_samples_v6/ $HOME

cd $HOME/cudnn_samples_v6/mnistCUDNN

make clean && make

./mnistCUDNN


如果一切順利,腳本應該會返回一條 Test passed! 消息。


卸載 cudnn


使用以下命令卸載三個庫。另外,如果你已經創建了樣本,那麼再加上 rm -r ~/cudnn_samples_v6。


sudo apt-get remove libcudnn6

sudo apt-get remove libcudnn6-dev

sudo apt-get remove libcudnn6-doc


Reference:cuDNN Installation Guide cuDNN Installation Guide(http://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html)


5. 安裝 pip 9.0.1


Pip 的升級非常頻繁,幾乎每兩周一次,建議使用最新版本的 pip。


請使用以下命令安裝和升級最新版本的 pip。


sudo apt-get install python-pip python-dev

sudo pip install --upgrade pip


驗證:請確保鍵入 pip -V 後可以列印出版本號。


6. 安裝 Tensorflow 1.3.0


pip install tensorflow-gpu


驗證:啟動$ python,確認是否以下腳本能夠列印出 Hello, Tensorflow!


import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))


Reference:https://www.tensorflow.org/install/install_linux


7. 安裝 Theano 0.10


Theano 需要的系統環境:


sudo apt-get install libopenblas-dev cmake git


此外還要遵循 Python 的系統需求。


sudo pip install numpy scipy nose sphinx pydot-ng pycuda scikit-cuda cython


libgpuarray 可以讓 Theano 使用 GPU,它必須從源編譯。首先下載原始碼


git clone https://github.com/Theano/libgpuarray.git

cd libgpuarray


將其編譯為一個名為 Build 的文件夾。


mkdir Build

cd Build

cmake .. -DCMAKE_BUILD_TYPE=Release

make

sudo make install


隨後將其編譯成一個 Python 包。


cd ..

python setup.py build

sudo python setup.py install


將下面一行添加至 ~/.bashrc,這樣 Python 就可以找到庫了。


export LD_LIBRARY_PATH=/usr/local/lib/:$LD_LIBRARY_PATH


最後,安裝 Theano


sudo pip install git+https://github.com/Theano/Theano.git#egg=Theano


驗證:創建測試文件 test_theano.py,其中的內容複製自:http://deeplearning.net/software/theano/tutorial/using_gpu.html#testing-theano-with-GPU


隨後看看 THEANO_FLAGS=device=cuda0 python test_theano.py 在使用了 GPU 之後是否成功。


Reference: Theano 0.9.0 documentation(http://deeplearning.net/software/theano/install_ubuntu.html)


8. 安裝 CNTK 2.2


sudo pip install https://cntk.ai/PythonWheel/GPU/cntk-2.2-cp27-cp27mu-linux_x86_64.whl


驗證:輸入 python -c "import cntk; print(cntk.__version__)",輸出 2.2。


Reference: Setup CNTK on your machine(https://docs.microsoft.com/en-us/cognitive-toolkit/setup-cntk-on-your-machine)


9. 安裝 Keras 2.0.8


sudo pip install keras


驗證:檢查$ python 中的 import keras 是否成功。


Reference: Keras Installation(https://keras.io/#installation)


10. 安裝 PyTorch 0.2.0


PyTorch 運行在兩個庫上: torchvision 和 torch,我們需要這樣安裝:


sudo pip install http://download.pytorch.org/whl/cu80/torch-

0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl

sudo pip install torchvision


驗證:以下腳本能夠列印出一個帶有隨機初始浮點數的張量。


from __future__ import print_function

import torch

x = torch.Tensor(5, 3)

print(x)


Reference: http://pytorch.org/


結論


目前為止,整個過程中最難的部分是找出 Nvidia 驅動和深度學習包之間的依賴關係,以及最有效的長期安裝過程。而最簡單的部分是安裝 Python,安裝包和文檔都得到了良好的維護。


雖然閱讀文檔和原始碼都非常耗費時間,但了解每個軟體包的構建和功能是非常具有啟發性的,它也可以幫助我們理解整個 Ubuntu 生態系統。


希望本文對你有所幫助。 


原文連結:https://medium.com/@dyth/deep-learning-software-installation-guide-d0a263714b2



本文為機器之心編譯,轉載請聯繫本公眾號獲得授權

✄---

加入機器之心(全職記者/實習生):hr@jiqizhixin.com

投稿或尋求報導:content@jiqizhixin.com

廣告&商務合作:bd@jiqizhixin.com

相關焦點

  • 深度學習軟體安裝指南
    由於近期論文的需要,我搭建了一個基於 Ubuntu 和英偉達的深度學習環境。
  • 10個深度學習軟體的安裝指南(附代碼)
    個深度學習軟體安裝指南。由於近期論文的需要,我搭建了一個基於 Ubuntu 和英偉達的深度學習環境。儘管已經有很多非常棒的關於英偉達驅動和 CUDA 的安裝指南, 但依然沒有詳盡的深度學習環境搭建指南。另外,我需要查閱很多文檔來熟悉細節,其中一些細節還有待完善,甚至還有一些包含語法錯誤。因此我決定把我這段時間查閱的文檔(見參考連結)做個總結。
  • 手把手教你安裝深度學習軟體環境(附代碼)
    本文向你解釋如何在一臺新裝的 Ubuntu 機器上安裝 Python 和 Nvidia 硬體驅動、各類庫和軟體包。為了進行強化學習研究,我最近購置了一臺基於 Ubuntu 和英偉達 GPU 的深度學習機器。儘管目前在網絡中能找到一些環境部署指南,但目前仍然沒有全面的安裝說明。另外,我也不得不閱讀了很多文檔來試圖理解安裝細節——其中的一些並不完整,甚至包含語法錯誤。
  • 深度學習指南:基於Ubuntu從頭開始搭建環境
    原文標題:Setting up a Deep Learning Machine from Scratch (Software) 原文連結:https://github.com/saiprashanths/dl-setup譯者:劉翔宇 審校:趙屹華 責編:周建丁(zhoujd@csdn.net)這是一篇為機器搭建深度學習研究環境的詳細指南
  • 如何從零開始搭建深度學習工作站
    ,也開始在各行各業應用起來。最近由於工作的需要,組建了一臺適用於深度學習的工作站。工作檯的搭建涉及到硬體及軟體兩部份,每一部份都對整體性能有影響,而且還需要綜合考慮實際研發需要和後期的擴展性。下面就來詳細說說每一點,希望對大家有幫助。
  • 深度 從硬體配置到軟體安裝,一臺深度學習機器的配備指南
    ,他同時也運營著自己的面向客戶的深度學習產品。對於用於生產的研究和開發,高速硬體是必需的,而 GPU 通常是我們所面臨的主要瓶頸,尤其對於深度神經網絡(DNN)更是如此。是的,確實是這樣:亞馬遜這樣的雲提供商以低於每小時 1 美元的價格出售可以執行 GPU 計算的實例和可以導出、共享和重複使用的可以直接進行生產的虛擬機。如果你常常從頭開始安裝庫,你可能知道軟體和硬體庫都可以使用定期更新的安裝腳本或 dockerized 容器輕鬆地完成安裝。
  • 幾分鐘構建自己的深度學習開發環境,我是怎麼做到的?
    深度學習的劣勢在於, 從零開始建立自己的深度學習環境是一個非常痛苦的過程,尤其是在我們要迫切編寫代碼和實現深度學習模型的時候。本文則是在作者多次實戰部署的基礎上,藉助已有服務,儘可能避免從零創建深度學習環境,從而讓你可以專注於快速構建學習模型,更快地解決問題。
  • 從硬體配置到軟體安裝,一臺深度學習機器的配備指南
    為了做到這一點,我決定自己使用 GPU 設計和打造自己的量身定製的深度學習系統。在這一些方面這比我想像的簡單,但另一些方面卻更困難。在接下來的文章中,我會和你分享我的『冒險之旅』,不關你是深度學習實踐的新手還是老手,希望這都對你有用。」目前該系列文章已經更新了兩篇,機器之心將其統一編譯到了這篇文章中。
  • 深度學習環境搭建
    為了減少讀者閱讀無用內容的時間,本文作者聲明,讀者只需要閱讀下面5個章節即可完成在Linux作業系統的深度學習環境搭建:第2章《在雲虛擬機中安裝Anaconda5.2》;第4章《在雲虛擬機中安裝Nvidia驅動》;第5章《在雲虛擬機中安裝CUDA9.0》;第6章《在雲虛擬機中安裝cuDNN7.1》;第7章《在雲虛擬機中安裝TensorFlow
  • 深度學習自救指南(一)| Anaconda、PyTorch的下載和安裝
    在我們進行深度學習的過程中,離不開Anaconda環境和PyTorch深度學習框架。
  • 從零開始深度學習Pytorch筆記(12)—— nn.Module
    從零開始深度學習Pytorch筆記(1)——安裝Pytorch從零開始深度學習Pytorch
  • 【深度學習】相當全面的深度學習環境配置指南!(Windows、Mac、Ubuntu全講解)
    俗話說,環境配不對,學習兩行淚。如果你正在面臨配置環境的痛苦,不管你是Windows用戶、Ubuntu用戶還是蘋果死忠粉,這篇文章都是為你量身定製的。接下來就依次講下Windows、Mac和Ubuntu的深度學習環境配置問題。
  • 深度學習環境搭建詳細教程
    CUDA & cuDNNPyTorch & TensorFlowPyCharmsoftware:安裝路徑;系統環境變量配置;快速啟動與關閉;軟體本身的一些相關配置/anaconda3.sh# 1、回車開始安裝# 2、按 q 退出查看閱讀協議# 3、輸入 yes 同意協議服務# 4、輸入安裝路徑 /home/user/conda/# 5、添加系統環境變量 yes
  • 深度學習環境配置指南!(Windows、Mac、Ubuntu全講解)
    入門深度學習,很多人經歷了從入門到放棄的心酸歷程,且千軍萬馬倒在了入門第一道關卡:環境配置問題。俗話說,環境配不對,學習兩行淚。
  • Keras 教程: Python 深度學習終極入門指南
    開始之前, 請注意, 本指南是面向對應用深度學習感興趣的初學者的.我們旨在向你介紹一個最流行的同時也是功能最強大的, 用於建立神經網絡的 Python 庫. 這意味著我們將跳過許多理論與數學知識, 但我們還是會向你推薦一些學習這些的極好的資源.
  • 從零開始深度學習第17講:keras入門及快速上手指南
    深度學習到這個進度,筆者覺得有必要開始對一些優秀的深度學習框架進行介紹了。      keras 是一款使用純 python 編寫的神經網絡 API,使用 keras 能夠快速實現你的深度學習方案,所以 keras 有著為快速試驗而生的美稱。keras 以 Tensorflow、Theano、CNTK 為後端,意思就是 keras 的底層計算都是以以上這些框架為基礎的,這使得 keras能夠專注於快速搭建起神經網絡模型。
  • 手把手教你——深度學習環境搭建
    (可以挑關鍵的點看下,起碼讓自己看公式的時候,相對沒有那麼懵)(2)Python基礎語法學習。(有其他程式語言基礎的,學起來很輕鬆,觸類旁通)(3)Google的TensorFlow深度學習開源框架。數學基礎好或者前期先不關注原理的同學,數學部分不看也可以開始做,全憑個人選擇。2.
  • 深度學習筆記15:ubuntu16.04 下深度學習開發環境搭建與配置
    深度學習筆記6:神經網絡優化算法之從SGD到Adam深度學習筆記7:Tensorflow入門深度學習筆記8:利用Tensorflow搭建神經網絡深度學習筆記9:卷積神經網絡(CNN)入門深度學習筆記10:三維卷積、池化與全連接深度學習筆記11:利用numpy搭建一個卷積神經網絡
  • 大數據學習環境搭建系列(二)虛擬機軟體Vmware的安裝
    作者 | CDA數據分析師概述在進行分布式架構的學習前,首先需進行基礎環境準備。眾所周知,在單機運算能力無法滿足處理海量數據的運算能力時,人們普遍開始考慮使用分布式運算來代替單機運算,這也成為了大數據分析和小數據分析最顯著的區別之一,即使用的工具不同。
  • 深度學習真的可以零基礎入門嗎?
    Jason Brownlee 的故事我們的老熟人——澳大利亞的機器學習(ML)專家 Jason Brownlee,就常用自己的「慘痛經歷」勸誡深度學習學習者切勿迷信學校裡的東西。他本是一名普通的軟體工程師,對 ML 感興趣之後,花幾百澳刀買了幾本教材自學,但效果不是很好,以為需要「科班」學習經歷才能讀懂那些學術語言。