[框架安裝趟雷指南]Ubuntu+1060+cuda+cudnn+Keras+TH+TF+MXnet

寫這篇文章的問題是為了回報社會,同時紀念長達一周的地獄般的安裝(折騰)過程。

本文不一定是最佳安裝方法,也不一定適合每一個人,主要目的是幫助大家避坑。

已經更到安裝完畢keras+th+tf並開啟gpu支持,如果發現有任何錯誤請務必指正。

感謝一切在安裝過程中給予我幫助的文檔作者、群友、同行,感謝清華大學開源軟體鏡像站,感謝x雷。

重要的話寫在前頭:

1:不要嘗試Windows安裝!不要嘗試Windows安裝!不要嘗試Windows安裝!成功安裝只屬於不可複製的小概率事件!不要想著工作娛樂用Windows,在Windows上搞深度學習會方便!呵呵,等著系統完蛋工作娛樂一起毀吧。>.<

2:網上文檔眾多,不少過於老舊或者不適合你的環境,注意避坑!小trick:在用100度搜索時,用篩選功能篩進一周或者一個月的,選擇環境硬體與自己相近的。

正文:

我的配置:

華碩主板,雙路e5,GTX1060,240gINTEl固態裝win,120gINTEL固態裝Ubuntu,1T機械放東西。

最終系統及重要環境:Ubuntu16.04(sever),cuda8.0.44,cudnn5.1

一.安裝ubuntu(最大的坑!已有ubuntu跳過)

用N卡裝ubuntu是一件很坑的事,安裝界面都可能進不去。這是最大的坑,過去了以後其他的其實都是小坑。

避坑方法:安裝sever版再安裝Desktop!!!!!!!!!

sever 版優點是無圖形界面,可以順利安裝並進入系統(命令行),至少能讓計算機活過來。N卡福音。

缺點也是無圖形界面,真的不習慣。

安裝過程:

1.官網下載:Ubuntu Server

2啟動盤製作

過程參照這一篇教程:Ubuntu 16.04 U盤安裝圖文教程_Linux教程_Linux公社-Linux系統門戶網站

*注意,選擇鏡像類型時要選擇Ubuntu sever installer ,這個和教程有區別。

3.備份!

4.插u盤重啟進bios,設置u盤啟動。保存退出(重啟)

5.U盤啟動成功,進入grub

安裝過程基本上沒坑,不會在那個界面截圖,過程參考:Ubuntu Server 13.10 安裝配置圖解教程

*分區的時候需要注意,最好準備一塊空硬碟單獨安裝ubuntu,這個和文檔不一樣

選擇手動》》選擇要安裝的硬碟的名稱那行》》建立空白分區列表》》選擇空白分區》》自動分區》》確認寫入

最後別忘了拔u盤,修改BIOS

6.安裝完成,應該是黑屏。。。。

不要慌,sever就這樣,默認進入黑屏!按ctrl+shift+f1進入命令行,輸入用戶名和密碼!

升級和配置基本環境

sudo apt updatesudo apt upgradesudo apt install -y python-dev python-pip python-nose gcc g++ git gfortran vimsudo apt install -y libopenblas-dev liblapack-dev libatlas-base-dev

二、配置n卡

第二大坑,根據另外一個顯卡是集顯或者核心有不同。

安裝流程:

安裝desktop>>安裝驅動>>重啟進desktop

sudo apt-get updatesudo apt-get install ubuntu-desktop

桌面安裝完畢,如果進的去,就在附加驅動里看一看N卡用什麼驅動,最好換367以上。

不過有可能進不去,切到命令行,安裝顯卡驅動。

方法1:

wget:驅動網址

sudo service lightdm stopsudo sh 文件名sudo service lightdm restart

這裡網址我是手打,run文件的

方法2:

sudo add-apt-repository ppa:graphics-drivers/ppasudo apt-get update sudo apt-get install nvidia-367 sudo apt-get install mesa-common-dev sudo apt-get install freeglut3-devsudo service lightdm restart

重啟,應該能成功進入桌面系統了

如果閃退,就嘗試重啟,再不行就再裝一次驅動

三、安裝cuda

在NVIDIA下載cuda8的runfile local版,注意8.0.44已經解決了gcc版本這個大坑!

developer.nvidia.com/cu

*小trick,可以在Windows下用x雷下載,速度爆快!

拷到home目錄

sudo sh cuda_8.0.44_linux.run

當它詢問是否要安裝cuda包裡帶的驅動時(我記得是367.xx),一般教程都說否,因為他們裝cuda8.0.27版本,驅動是361。這裡,建議你選否,我也選的no。

千萬不要改路徑,默認就好

安裝完成

下一步要把cuda路徑添加到環境變數

sudo gedit ~/.bashrc

在最後一個fi後面換行

寫入

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

保存,關閉

source ~/.bashrc

重啟

然後應該無坑

輸入

nvidia-smi

查看顯卡狀態

輸入

nvcc -V

查看cuda狀態

四、安裝cudnn

developer.nvidia.com/cu

N家官網下載,需要註冊一個開發者賬戶,每次下載都要答一個問卷

下載對應的最新版本

解壓,cd到新解壓出來的cuda文件夾

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

五、安裝Keras+Theano

提示,Tensorflow慢成狗,慎用。

先把pip源改成清華鏡像:

複製自: 清華大學開源軟體鏡像站

pypi 鏡像使用幫助

pypi 鏡像每 5 分鐘同步一次。

臨時使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

注意,simple 不能少, 是 https 而不是 http

設為默認

修改 ~/.pip/pip.conf (沒有就創建一個), 修改 index-url至tuna,例如

[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple

好,我們成功的避免了pip安裝時超時以及30byte/s的情況,下面安裝keras就非常簡單了

sudo pip install -U --pre pip setuptools wheelsudo pip install -U --pre numpy scipy matplotlib scikit-learn scikit-imagesudo pip install -U --pre theanosudo pip install -U --pre keras

theano和keras安裝完成,注意,此時只有cpu版本,我們要修改theano配置來實現gpu加速

先把tensorflow改成theano

gedit ~/.keras/keras.json

先import 一次keras

pythonimport theano import keras

沒報錯的話就是成功了

修改theano配置:

gedit ~/.theanorc

寫入

[global]openmp=False device = gpu floatX = float32 allow_input_downcast=True [lib]cnmem = 0.8 [blas]ldflags= -lopenblas[nvcc]fastmath = True

保存退出

pythonimport keras

應該會有warning說正在使用cudnn5.1,theano只支持5.,如果有問題就降級cudnn或者升級theano

那麼恭喜!你已經成功安裝keras和theano,並且開啟了gpu支持,可以開始用keras愉快的搞♂深度學習了!

六、安裝Tensorflow

完全按照官網來吧:

tensorflow.org/versions

Then, select the correct binary to install:

# Ubuntu/Linux 64-bit, CPU only, Python 2.7$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Install from sources" below.$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl# Mac OS X, CPU only, Python 2.7:$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc2-py2-none-any.whl# Mac OS X, GPU enabled, Python 2.7:$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc2-py2-none-any.whl# Ubuntu/Linux 64-bit, CPU only, Python 3.4$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp34-cp34m-linux_x86_64.whl# Ubuntu/Linux 64-bit, GPU enabled, Python 3.4# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Install from sources" below.$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc2-cp34-cp34m-linux_x86_64.whl# Ubuntu/Linux 64-bit, CPU only, Python 3.5$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp35-cp35m-linux_x86_64.whl# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Install from sources" below.$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0rc2-cp35-cp35m-linux_x86_64.whl# Mac OS X, CPU only, Python 3.4 or 3.5:$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.11.0rc2-py3-none-any.whl# Mac OS X, GPU enabled, Python 3.4 or 3.5:$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc2-py3-none-any.whlInstall TensorFlow:# Python 2$ sudo pip install --upgrade $TF_BINARY_URL# Python 3$ sudo pip3 install --upgrade $TF_BINARY_URL

So easy!可以在keras里切換後端了。

注意一下keras針對cnn中th和tf卷積核的數據格式

還是在剛才那個修改後端的文件里修改即可。

七、安裝MXNet

個人很看好MXNet,簡介、速度快、語言多、社區活躍,缺點就是時間段、文檔比較少。

先按照官網教程安裝

We need git to clone MXNet source code repository to your machine.

# Install git if not already installed.sudo apt-get updatesudo apt-get -y install git

# Clone mxnet repository. In terminal, run the commands WITHOUT "sudo"git clone https://github.com/dmlc/mxnet.git ~/MXNet/mxnet --recursive# Install MXNet dependenciescd ~/MXNet/mxnet/setup-utilsbash install-mxnet-ubuntu.sh# We have added MXNet Python package path in your ~/.bashrc. # Run below command to refresh environment variables.$ source ~/.bashrc

下面我們需要修改config.mk文件使其使用gpu

cd MXNet/mxnet

cp make/config.mk .

到mxnet目錄編輯config.mk文件

改這幾處(文件里本身帶教程)

USE_CUDA = 1USE_CUDA_PATH = /usr/local/cudaUSE_CUDNN = 1

保存

make cleanmake -j4

MXNet至此完成

打開python,試驗一下

import mxnet as mxa = mx.nd.ones((2, 3),... mx.gpu())print (a * 2).asnumpy()

至此,框架安裝結束!

如果我的文檔能幫你避掉一兩個坑,我將感到無比的欣慰

如有安裝過程、代碼命令的錯誤以及侵權等質疑請務必聯繫我!


推薦閱讀:

Tensorflow 2018學習筆記-04.TensorBoard可視化
如何評價deep mind開源的sonnet?
機器學習:彈性伸縮的雲端託管服務
TensorFlow開源一周年:這可能是一份最完整的盤點
TensorFlow 訓練好模型參數的保存和恢復代碼

TAG:深度学习DeepLearning | Theano | TensorFlow |