[框架安裝趟雷指南]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版本這個大坑!
https://developer.nvidia.com/cuda-downloads
*小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
https://developer.nvidia.com/cudnn
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
完全按照官網來吧:
https://www.tensorflow.org/versions/r0.11/get_started/os_setup.html#pip-installation
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 |