深度學習指南:基於Ubuntu從頭開始搭建環境
阿新 • • 發佈:2018-12-31
這是一篇為機器搭建深度學習研究環境的詳細指南,包括驅動程式、工具和各種深度學習框架的安裝指導。在64位Ubuntu 14.04的機器上使用Nvidia Titan X進行測試。
還有一些有類似目的的指南。一些內容有限,而另外一些則不是最新的。該指南基於(有些部分是複製來的):
目錄
- 基礎知識
- Nvidia驅動
- CUDA
- cuDNN
- Tensorflow
- OpenBLAS
- 常用工具
- Caffe
- Theano
- Keras
- Torch
- X2Go
基礎知識
- 首先,開啟終端,執行以下命令確保你的作業系統是最新的
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get autoremove
安裝git
sudo apt-get install git
Nvidia驅動
- 檢視顯示卡型號
lspci | grep -i nvidia
到Nvidia官網查詢你顯示卡對應的最新驅動和系統設定。你可以從此網站上下載並安裝驅動,但這樣做會升級到更新的驅動,並且解除安裝的時候會有些麻煩。此外,這麼做需要你退出X服務會話,從終端進行安裝,這比較麻煩。
我們將使用apt-get來安裝驅動。到 “Proprietary GPU Drivers” PPA中檢視是否有你最新的驅動。注意,最新的驅動一定是最穩定的。你也可以安裝網頁上推薦的驅動版本。新增”Proprietary GPU Drivers” PPA 資源庫。在寫這篇文章的時候,最新版本是361.42,然而推薦版本是352:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-352
- 重啟系統
sudo shutdown -r now
- 檢查以確保安裝了正確版本的NVIDIA驅動
cat /proc/driver/nvidia/version
CUDA
- 從Nvidia上下載CUDA7.5。然後到下載目錄下安裝CUDA
sudo dpkg -i cuda-repo-ubuntu1404*amd64.deb
sudo apt-get update
sudo apt-get install cuda
- 新增CUDA到環境變數
echo 'export PATH=/usr/local/cuda/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
- 檢查以確保安裝了正確版本的CUDA
nvcc -V
- 重啟系統
sudo shutdown -r now
檢查CUDA安裝(可選)
- 在CUDA安裝目錄安裝樣例。編譯它們(需要幾分鐘):
/usr/local/cuda/bin/cuda-install-samples-7.5.sh ~/cuda-samples
cd ~/cuda-samples/NVIDIA*Samples
make -j $(($(nproc) + 1))
注意:(-j $(($(nproc) + 1)))命令使用你機器上的核心數並行執行,所以編譯會更快
- 執行deviceQuery,確保它能檢測到顯示卡並測試通過
bin/x86_64/linux/release/deviceQuery
cuDNN
cuDNN是為DNN設計的CPU加速庫。它能在多種情況下幫助提升執行速度。為了下載cuDNN庫,你需要到Nvidia網站https://developer.nvidia.com/cudnn上進行註冊。幾小時到幾個工作日就能夠批准。一旦註冊批准,下載Linux版本的cuDNN v4。最新版本是cuDNN v5,但是不是所有的工具都支援。
解壓並複製檔案
cd ~/Downloads/
tar xvf cudnn*.tgz
cd cuda
sudo cp */*.h /usr/local/cuda/include/
sudo cp */libcudnn* /usr/local/cuda/lib64/
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
檢查
- 你可以使用nvidia-smi 命令檢查目前所有操作都正確。這應該會輸出GPU的一些統計資料
Tensorflow
- 安裝v0.8版本與GPU相容。下面的指令都來自於這裡
sudo apt-get install python-pip python-dev sudo pip install --upgrade
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.8.0-cp27-none-linux_x86_64.whl
- 執行一個測試程式確保Tensorflow成功安裝。當你執行import命令的時候,應該不會有警告/錯誤。
python
>>> import tensorflow as tf
>>> exit()
OpenBLAS
- OpenBLAS是一個線性代數庫,比Atlas更快。這一步是可選的,但要注意,下面的一些步驟假定你已經安裝了OpenBLAS。你需要安裝gfortran來編譯它。
mkdir ~/git
cd ~/git
git clone https://github.com/xianyi/OpenBLAS.git
cd OpenBLAS
make FC=gfortran -j $(($(nproc) + 1))
sudo make PREFIX=/usr/local install
- 將路徑新增到LD_LIBRARY_PATH 變數中
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
常用工具
- 為Scipy安裝一些常用工具
sudo apt-get install -y libfreetype6-dev libpng12-dev
pip install -U matplotlib ipython[all] jupyter pandas scikit-image
Caffe
- 下面的指令都來自於這裡。第一步是安裝所必須的檔案
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
- 克隆Caffe資源庫
cd ~/git
git clone https://github.com/BVLC/caffe.git
cd caffe
cp Makefile.config.example Makefile.config
- 如果你安裝了cuDNN,取消Makefile中USE_CUDNN := 1 這一行的註釋
sed -i 's/# USE_CUDNN := 1/USE_CUDNN := 1/' Makefile.config
- 如果你安裝了OpenBLAS,修改BLAS引數值為open
sed -i 's/BLAS := atlas/BLAS := open/' Makefile.config
- 安裝需要的檔案,構建Caffe和測試,執行測試確保所有測試都通過。注意,這都需要一段時間。
sudo pip install -r python/requirements.txt
make all -j $(($(nproc) + 1))
make test -j $(($(nproc) + 1))
make runtest -j $(($(nproc) + 1))
- 構建PyCaffe,Caffe的Python介面
make pycaffe -j $(($(nproc) + 1))
- 將Caffe新增到環境變數中
echo 'export CAFFE_ROOT=$(pwd)' >> ~/.bashrc
echo 'export PYTHONPATH=$CAFFE_ROOT/python:$PYTHONPATH' >> ~/.bashrc
source ~/.bashrc
- 測試確保Caffe安裝成功。當執行import命令的時候應該不會有警告/錯誤。
ipython
>>> import caffe
>>> exit()
Theano
- 安裝所必須的檔案,然後安裝Theano。這些指令來自於這裡
sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ python-pygments python-sphinx python-nose
sudo pip install Theano
- 測試Theano安裝。當執行import命令的時候應該不會有警告/錯誤。
python
>>> import theano
>>> exit()
Keras
- Keras是圍繞Theano和Tensorflow設計的一個有用的封裝。預設情況下,它使用Theano作為後端。檢視這裡的指令以瞭解如何變更為Tensorflow。
sudo pip install keras
Torch
- 下面安裝Torch的指令來自於這裡。安裝會花一些時間
git clone https://github.com/torch/distro.git ~/git/torch --recursive
cd torch; bash install-deps;
./install.sh
X2Go
- 如果你的深度學習機器不是主要工作機器,X2Go可以幫助你遠端訪問。X2Go是一個了不起的遠端訪問解決方案。你可以使用下面的命令在Ubuntu機器上安裝X2Go服務。
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:x2go/stable
sudo apt-get update
sudo apt-get install x2goserver x2goserver-xsession
- X2Go不支援統一桌面環境(Ubuntu的預設環境)。我發現XFCE效果不錯。更多支援的環境在這裡
sudo apt-get update
sudo apt-get install -y xfce4 xfce4-goodies xubuntu-desktop
- 使用下面的命令檢視機器的IP
hostname -I
- 你可以使用上面的IP在你主要使用的機器上安裝一個客戶端來連線到深度學習伺服器上。根據你的客戶端系統,這裡有更多的指令。