深度學習環境搭建:Ubuntu16.04+npython3.5+cuda8.0+Tensorflow1.4
Deep Learning是目前最火的機器學習領域,入門Deep learning從基礎環境開始開始。本文介紹最常見的深度學習環境(Ubuntu+Cuda+Tensorflow)搭建過程,說明如何在眾多發行版本的軟體中選擇適合自己的版本,節約踩坑的時間。
最近跟風在刷吳恩達老師的深度學習課程,開始一直在用anaconda安裝tensorflow的CPU版本,但是發現這個速度很慢,再加上筆記本有GTX960m,不用起來也是浪費了。於是就開始折騰。
1.準備工作
準備工作非常非常重要,不然會踩無數的坑。
1.1 硬體準備
首先,我們需要確認我們的機器是否支持深度學習環境。簡單的說就是有沒有顯卡,沒有顯卡就可以跳過我這篇文章了。
看一下我的硬體配置:
- 筆記本:xps-15-9550
- CPU:i5
- 內存:8G×2
- 顯卡:GTX960m,2G顯存
- 硬碟:三星950SSD,126G
其中內存、CPU和顯卡比較重要,深度學習對硬體還是有一定要求的,具體的請百度或者Google看一下。
1.2 軟體準備
我的深度學習環境是:Ubuntu16.04,Python3.5,Cuda8.0,Tensorflow1.4。
網上已經有很多的大神分享過自己的深度學習搭建過程,我參考了很多作者的經驗。剛開始的時候,發現網上各種軟體版本不一樣,整得新手雲里霧裡,我分享一些我踩過坑之後的經驗。
搭建深度學習環境需要用到很多的庫,這些庫與庫之間是有依賴關係的,比如:Tensorflow1.4隻能安裝在python3.5而不能安裝在python3.6,Cuda9.0安裝Tensorflow會有各種各樣的問題等。
我就一步一步說:
第一:Ubuntu16.04操作系統。主流的操作系統有windows、Mac os和Linux,顯然選擇windows和mac os並不是一個明智的選擇,因此我們選擇用比較流行的Linux發行版本Ubuntu16.04。
第二:python3.5。python因為歷史遺留問題,現在有python2和python3兩個大版本同時發行。Python社區(包括Numpy、Pandas)在內的很多維護者已經公開說明將在2020年之前放棄支持python2版本,因此我們的選擇也只剩下python3了。我在安裝的過程中還發現python3.6無法安裝GPU支持的Tensorflow,所以我使用的是python3.5。
第三:Cuda8.0。根據之前大神們的分享,目前Ubuntu16.04對cuda8.0的版本支持較好,同時Tensorflow對cuda9.0不太友好,因此我們選擇Cuda8.0。
2.環境搭建
- 安裝Ubuntu16.04
- 安裝GTX960m驅動
- 安裝Cuda8.0
- 安裝cuDNN6.0
- 安裝Tensorflow1.4
2.1 安裝Ubuntu16.04
從Ubuntu官網下載鏡像,並用U盤安裝。
安裝完成之後更新系統。
sudo apt-get update sudo apt-get upgrade
2.2 安裝GTX960m顯卡驅動
由於默認Ubuntu系統的顯卡驅動並非是Nvidia驅動,需要先安裝合適的Nvidia顯卡驅動才能安裝CUDA,去官網http://www.geforce.com/drivers查找顯卡驅動型號。
最新的穩定版驅動為384,執行以下代碼安裝。
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update sudo apt-get install nvidia-384
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
執行完成後重啟電腦,執行nvidia-smi查看驅動信息。
2.3 安裝Cuda8.0
從NVIDIA官網https://developer.nvidia.com/cuda-release-candidate-download下載適合的CUDA版本,目前官網最新的版本是9.0,但是我非常不建議大家使用最新版本。
我們選擇linux平台,下載runfile。執行;
sudo ./cuda_8.0.61_375.26_linux.run --tmpdir=/opt/temp/
這裡加了--tmpdir主要是直接運行「sudo sh cuda_8.0.27_linux.run」會提示空間不足的錯誤,其實是全新的電腦主機,硬碟足夠大的,google了以下發現加個tmpdir就可以了。
我們已經安裝好了384,這一步選擇n,剩下的一路yes就行。
最後需要配置環境變數,讓我們安裝的CUDA生效。
(1)打開sudo gedit ~/.bashrc,在最後面添加兩行如下:
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}}
(2)設置環境變數和動態鏈接庫,打開sudo gedit /etc/profile,在文件末尾加入:
export PATH=/usr/local/cuda/bin:$PATH
(3)創建鏈接文件,打開sudo gedit /etc/ld.so.conf.d/cuda.conf,在文件中添加:
/usr/local/cuda/lib64
最後執行 sudo ldconfig,使上述設置立即生效。
測試CUDA:
執行以下命令:
cd ~/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
可以看到詳細信息,最後結果是Pass,則CUDA安裝成功,否則就是哪裡有問題(利用Google和百度解決)。
我這裡result=pass,安裝成功。
2.4 安裝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":
下載後安裝非常簡單,就是解壓然後拷貝到相應的系統CUDA路徑下,:
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/
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
2.5 安裝Tensorflow1.4
Tensorflow的安裝非常簡單,我們先安裝好了anaconda4.2(這個版本的python為3.5),修改好環境變數,然後用命令行安裝就ok了:
sudo pip install --upgrade tensorflow
安裝完成後,運行python,導入tensorflow包,一切正常的就是沒有提示。
結束語:
在折騰過程中,不會一帆風順,會有各種各樣的坑等著你。不怕錯誤,善於利用百度、Google。如果有問題不好解決,可以留言,我會儘快回答。
當然,也歡迎關注微信公眾號:Kaggle數據分析。
參考資料:
1. http://www.52nlp.cn/深度學習主機配置-ubuntu16-04-geforce-gtx1080-tensorflow
2. http://blog.csdn.net/u010789558/article/details/51867648
3. http://blog.csdn.net/fei_6/article/details/75305692
推薦閱讀:
※數據挖掘還能火幾年?
※機器學習系列-隨機過程
※模型匯總22 機器學習相關基礎數學理論、概念、模型思維導圖分享
※淺析循環神經網路RNN的兩種應用