從零開始搭建深度學習伺服器:TensorFlow + PyTorch + Torch

本教程由深度學習中文社區(Studydl.com)持續發佈與更新.

在深度學習大行其道的今天,我們不應該停留於觀望的階段,我們應該多多上手進行實踐,下面將為大家介紹一下最簡單也是最基礎的內容,配置一個自己的深度學習服務器.

1. 安裝Ubuntu系統: Ubuntu16.04 或者 Ubuntu17.04

從Ubuntu官方直接下載Ubuntu鏡像(Ubuntu16.04或者Ubuntu17.04,採用的是desktop amd64版本),用U盤和Ubuntu鏡像製作安裝盤。在MAC下製作 Ubuntu USB 安裝盤的方法可參考: 在MAC下使用ISO製作Linux的安裝USB盤,之後通過Bios引導U盤啟動安裝Ubuntu系統。如果安裝的時候出現類似黑屏或者類似 "nouveau ... fifo ..."之類的報錯信息,重啟電腦,進入安裝界面時候長按e,進入圖形界面,按F6,選擇 nomodeset 或者手動添加,進行Ubuntu系統的安裝。

2. Source源和Pip源設置:

系統安裝完畢後建議設置一下source源和pip源,這樣可以加速安裝相關的工具包。

cd /etc/apt/ sudo cp sources.list sources.list.bak sudo vi sources.list

對於Ubuntu16.04,我用的是阿里雲的源.

對於Ubuntu17.04,我使用的是網易的源.

最後更新一下:

sudo apt-get update

sudo apt-get upgrade

另外一個事情是將pip源指向阿里雲的源鏡像:http://mirrors.aliyun.com/help/pypi,具體添加一個 ~/.config/pip/pip.conf 文件,設置為:

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

或者清華的pip源,剛好安裝的那兩天清華的pip源抽風,所以就換阿里雲的了。

3. 安裝1080TI顯卡驅動:

sudo apt-get purge nvidia* sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update && sudo apt-get install nvidia-384 nvidia-settings

安裝完畢後重啟機器,運行 nvidia-smi,看看生效的顯卡驅動:

從零開始搭建深度學習服務器:TensorFlow + PyTorch + Torch

4. 安裝CUDA:

因為Tensorflow和Pytorch目前官方提供的PIP版本只支持CUDA8, 所以我選擇了安裝CUDA8.0。不過目前英文達官方網站的 CUDA-TOOLKIT頁面默認提供的是CUDA9.0的下載,所以需要在英文達官方提供的另一個 CUDA Toolkit Archive 頁面選擇CUDA8,這個頁面包含了CUDA所有的歷史版本和當前的CUDA9.0版本。點擊 CUDA Toolkit 8.0 GA2 (Feb 2017) 這個頁面,選擇"cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb" 和 "cuBLAS Patch Update to CUDA 8":

從零開始搭建深度學習服務器:TensorFlow + PyTorch + Torch

從零開始搭建深度學習服務器:TensorFlow + PyTorch + Torch

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

如果之前沒有安裝上述"cuBLAS Patch Update to CUDA 8",可以用如下方式安裝更新:

sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64.deb

sudo apt-get update

sudo apt-get upgrade cuda

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

export PATH=/usr/local/cuda/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 使其生效

4. 安裝cuDNN:

cuDNN7.0 雖然出來了,但是 CUDA8 的最佳拍檔依然是cuDNN6.0,在NIVIDA開發者官網上,找到cudnn的下載頁面: https://developer.nvidia.com/rdp/cudnn-download ,選擇"Download cuDNN v6.0 (April 27, 2017), for CUDA 8.0" 中的 "cuDNN v6.0 Library for Linux":

從零開始搭建深度學習服務器:TensorFlow + PyTorch + Torch

下載後安裝非常簡單,就是解壓然後拷貝到相應的系統CUDA路徑下,注意最後一行拷貝時 "-d"不能少, 否則會提示.so不是symbol link:

tar -zxvf cudnn-8.0-linux-x64-v6.0.tgz sudo cp cuda/include/cudnn.h /usr/local/cuda/include/ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d

以上是安裝均在Ubunt16.04和Ubuntu17.04環境下測試通過,最後鑑於最近一些相關文章評論有同學留言無法從官方下載CUDA和cuDNN,親測可能與國內環境有關,我將cuda8.0, cuda9.0, cudnn6.0, cudnn7.0的相關工具包上傳到了百度網盤,提供兩個下載地址:

CUDA8.0 & CUDA9.0下載地址:鏈接: https://pan.baidu.com/s/1gfaS4lt 密碼 ddji ,包括:

1) CUDA8.0 for Ubuntu16.04: cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb

2) CUDA8.0 for Ubuntu16.04 更新: cuda-repo-ubuntu1604-8-0-local-cublas-performance-update_8.0.61-1_amd64

3) CUDA9.0 for Ubuntu16.04: cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb

4) CUDA9.0 for Ubuntu17.04: cuda-repo-ubuntu1704-9-0-local_9.0.176-1_amd64

cuDNN6.0 & cuDNN7.0下載地址:鏈接: https://pan.baidu.com/s/1qXIZqpA 密碼 cwch ,包括:

1) cudnn6.0 for CUDA8: cudnn-8.0-linux-x64-v6.0.tgz

2) cudnn7.0 for CUDA8: cudnn-8.0-linux-x64-v7.tgz

3) cudnn7.0 for CUDA9: cudnn-9.0-linux-x64-v7.tgz

以下是相關深度學習工具包的安裝,包括Tensorflow, PyTorch, Torch等:

1. TensorFlow:

首先安裝libcupti-dev

sudo apt-get install libcupti-dev

然後用 virtualenv 方式安裝 Tensorflow(當前是1.4版本)

sudo apt-get install python-pip python-dev python-virtualenv mkdir tensorflow cd tensorflow virtualenv --system-site-packages venv source venv/bin/activate pip install --upgrade tensorflow-gpu

測試GPU:

Python 2.7.12 (default, Nov 19 2016, 06:48:10) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import tensorflow as tf >>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) ... 2017-10-24 20:37:24.290049: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 0 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.6575 pciBusID 0000:01:00.0 Total memory: 10.91GiB Free memory: 10.52GiB ... 2017-10-24 20:37:24.387363: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 1 with properties: name: GeForce GTX 1080 Ti major: 6 minor: 1 memoryClockRate (GHz) 1.6575 pciBusID 0000:02:00.0 Total memory: 10.91GiB Free memory: 10.76GiB 2017-10-24 20:37:24.388168: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 1 2017-10-24 20:37:24.388176: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0: Y Y 2017-10-24 20:37:24.388179: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 1: Y Y 2017-10-24 20:37:24.388186: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0) 2017-10-24 20:37:24.388189: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:02:00.0) Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0 /job:localhost/replica:0/task:0/gpu:1 -> device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:02:00.0 2017-10-24 20:37:24.449867: I tensorflow/core/common_runtime/direct_session.cc:300] Device mapping: /job:localhost/replica:0/task:0/gpu:0 -> device: 0, name: GeForce GTX 1080 Ti, pci bus id: 0000:01:00.0 /job:localhost/replica:0/task:0/gpu:1 -> device: 1, name: GeForce GTX 1080 Ti, pci bus id: 0000:02:00.0 >>>

2. PyTorch:

首先在PyTorch的官網下載對應的pip安裝文件:

從零開始搭建深度學習服務器:TensorFlow + PyTorch + Torch

然後用virtualenv的方式安裝,非常方便:

mkdir pytorch cd pytorch/ virtualenv venv source venv/bin/activate pip install /path/to/torch-0.2.0.post3-cp27-cp27mu-manylinux1_x86_64.whl pip install torchvision

3. Torch

首先按照Torch官方的方法進行安裝:http://torch.ch/docs/getting-started.html

git clone https://github.com/torch/distro.git ~/torch --recursive

cd ~/torch; bash install-deps;

./install.sh

如無意外,可以順利安裝,如果遇到了如下兩個問題,可按下述方法修改:

1) 執行./install.sh時出現Moses>=1.錯誤

Missing dependencies for nn:moses >= 1.,有時候執行./install.sh時,會出現這個問題。

用這個方法解決:

sudo apt install luarocks sudo luarocks install moses

2) install.sh 過程中提示“error -- unsupported GNU version! gcc versions later than 5 are not supported!”

ubuntu17.04自帶gcc 6.x 版本,所以降級安裝gcc 4.9版本解決問題:

sudo apt-get install g++-4.9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

成功執行安裝腳本後後提示:

Do you want to automatically prepend the Torch install location

to PATH and LD_LIBRARY_PATH in your /home/yourpath/.bashrc? (yes/no)

[yes] >>>

yes

安裝腳本會自動將torch的安裝路徑寫入到 .bashrc裡,然後輸入 th試試:

如果你想用Lua5.2替代LuaJIT的方式安裝Torch(If you want to install torch with Lua 5.2 instead of LuaJIT, simply run),可按如下方式安裝:

git clone https://github.com/torch/distro.git torch --recursive cd torch # clean old torch installation ./clean.sh

在 ~/.bashrec中設置lua的環境:

TORCH_LUA_VERSION=LUA52

並執行 source ~/.bashrc, 然後運行:

./install.sh

遇到第一個問題:

cmake: not found

安裝cmake解決:

sudo apt-get install cmake

第二個問題:

readline.c:8:31: fatal error: readline/readline.h: 沒有那個文件或目錄

安裝libreadine-dev解決:

sudo apt-get install libreadline-dev

第三個問題:安裝過程依然提示“error -- unsupported GNU version! gcc versions later than 5 are not supported!”

ubuntu17.04自帶gcc 6.x 版本,所以降級安裝gcc 4.9版本解決問題:

sudo apt-get install g++-4.9

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20

安裝完畢依然會提示:

Not updating your shell profile.

You might want to

add the following lines to your shell profile:

. /home/textminer/torch/torch/install/bin/torch-activate

在 ~/.profile 文件末尾加上這行 ". /home/textminer/torch/torch/install/bin/torch-activate " 並執行 source ~/.profile,然後輸入 th試試。

更多TensorFlow入門教程點擊文末了解更多按鈕


分享到:


相關文章: