1. 程式人生 > >N卡雙顯示卡電腦裝ubuntu15.04並配置Anaconda+Tensorflow+cuda+cuDNN的深度學習環境

N卡雙顯示卡電腦裝ubuntu15.04並配置Anaconda+Tensorflow+cuda+cuDNN的深度學習環境

1.序

這篇文章的目的是Tensorflow環境配置的經驗和流程總結,涉及3個部分:

1)裝ubuntu並配置顯示卡驅動;

2)裝CUDA+cuDNN庫並解決cuda與顯示卡驅動衝突問題

3)以常用的科學計算python包Anaconda為基礎,Tensorflow放於其子環境中,並配置好程式設計介面jupyter或spyder

2. Tensorflow簡介和我的筆記本硬體配置

目前對電子和計算機行業的學生來說深度學習可以說是必備技能了,Google的Tensorflow又是企業化的、比較有前途的深度學習庫之一。

Tensorflow的不支援windows,必須在Linux下開發。

其他相對出名的庫有微軟的CNTK,學術性質較濃的Theano及其變種sklearn-theano,以及Caffe,Torch,mxnet等。

另外Keras是一個高層模組庫,底層是Tensorflow或者Theano,並且還有中文文件,也是個不錯的選擇。

我這篇介紹裡下的是GPU Enabled的Tensorflow包,所以裝CUDA。如果你選的是CPU only的就不用,但是運算起來那幾個測試程式就多大概一倍時間。

所以可以的話還是儘量珍惜生命,選用GPU Enabled的Tensorflow。畢竟平行計算也挺火的,挺適合神經網路訓練。

我的筆記本硬體配置:

微星GE60-2OD 

intel i7-4700HQ(HD4600整合顯示卡) + NVIDIA GTX765m

256G SSD + 756G的希捷SSD-HDD混合硬碟(含8GSSD),全都是GPT分割槽

8G 記憶體

3.下面開始介紹經過3天試錯得到的正確的流程

注:在此之前建議大家先看下Tensorflow官網的“Get Started”,內有詳細流程,只不過不會詳說CUDA和顯示卡驅動衝突等瑣碎問題。

1)裝ubuntu15.04。

裝之前我的256G的SSD上windows10的C盤佔了80G。win10也是EFI啟動引導。為了ubuntu在SSD上又分出來了40G

因為目前CUDA目前只支援15.04 和 14.04,而14.04在我裝完NVIDIA顯示卡驅動後直接黑屏,只能用NVIDIA-prime選intel進入。要是直接裝完CUDA再重啟竟然連命令列介面都打不開了,所以果斷拋棄。

我是64位系統,所以直接選的第一個

64-bit PC (AMD64) desktop image,注意這裡不是說要AMD的晶片,只不過intel的x86-64也是參考AMD64架構的,所以無論intel還是AMD的晶片都能用,但我的機器是intel的。

注意分割槽的時候不要讓自動裝,手動分割槽就行。

我測試過後覺得最好的方案是3~4個分割槽:A)EXT4的/boot,250M以上即可,用於選中作為EFI引導。實際會用掉190多M,所以不建議和windows的EFI引導區windows boot manager放一起因為空間不夠。也不建議想有些帖子中誤導的預設硬碟不用改什麼的(這種情況下ubuntu會檢測你選中的硬碟自動設定EFI分割槽,也可以用,但是不建議因為其過程不透明) B)直接從下拉選單裡選swap分割槽,中文的話好像是“”交換分割槽“”什麼的,其實就是虛擬記憶體。大小我沒怎麼在意,網上不少帖子說是你記憶體的1~2倍,所以我就分了8個G(8192M)C)root硬碟,仍然選EXT4分割槽,碟符選只有一個“/”的就是root分割槽,也就是系統分割槽,相當於windows中的C盤。D)另外你如果想的話也可以加個/home分割槽,放些雜檔案什麼的,相當於windows中的D、E、F等那些盤。

如果你黑屏了,或者在windows裡面把ubuntu盤格式化了(系統啟動後會進grub介面),這時候u盤裡又沒有映象,啟動後嘗試按F11或F12。一般現在筆記本這個鍵可以選擇從哪兒啟動,選windows進去,再下個映象就行。不用再開一臺電腦。所以我覺得整個過程還是比較保險的。

2)裝NVIDIA 352 驅動。

我裝的時候最新的是367.27,不過鑑於後來要裝的 CUDA Toolkit 7.5 是和352 配套的,於是決定選擇352。

ubuntu裝好後預設驅動是某開源驅動。如果你電腦配置跟我類似的話,不建議從Software & Update中的 Additional Drivers中換驅動。(當然可以試試,能用更好,反正我是重啟黑屏的) 

其實命令列裝也相當簡單保險。直接在Terminal 裡 (或按Alt + Ctrl + F1 進入命令列介面),輸入:

sudo apt-get install nvidia-352 nvidia-settings nvidia-prime 
其中NVIDIA-prime是一個軟體,可以切換nvidia和intel顯示卡。裝完NVIDIA驅動後預設的是nvidia-prime。

3)裝CUDA Toolkit7.5 和 cuDNN v4

先按連結中的要求檢查一下你GPU的compute capability是不是3.0以上。 整個安裝過程按部就班正常裝即可,cuDNN實際上是幾行命令解壓複製到CUDA的對應位置的。沒有難度。 唯一需要注意的是Tensorflow文件裡說的配置環境變數的~/.bash_profile, 在ubuntu裡是~/.profile。 但是裝完後請一定不要立即重啟!!! 下面是非常關鍵的一步,如果你上一步裝完CUDA立即重啟了,很有可能就黑屏或卡在ubuntu介面了。.具體情況是5、6次裡面能開啟一次。 看錯誤報告是是背光亮度的問題。具體原因不詳,但猜測是雖然nvidia-prime,仍然呼叫了某些intel的檔案。 其中的Intel HD Graphic Controllers一欄就是解決方案。 具體來說就是新建檔案/usr/share/X11/xorg.conf.d/80-backlight.conf 檔案內容填寫如下,儲存重啟即可,親測有效:
Section "Device"
    Identifier  "Intel Graphics"
    Driver      "intel"
    Option      "AccelMethod"     "sna"
    Option      "Backlight"       "intel_backlight" # use your backlight that works here
    BusID       "PCI:0:2:0"
EndSection

4)裝Anaconda3和配置Tensorflow環境,以及jupyter和spyder

裝Anaconda3沒什麼好說的,下載檔案執行即可。 配置Tensorflow就是按Tensorflow文件裡所述建一個虛擬環境就行了,這樣和ubuntu系統自帶的區別開來。 這裡看文件的時候注意,由於你裝了Anaconda 3,所以下載Tensorflow包的時候,即使環境建的是Python=3.5的,依然用pip即可,不用pip3。 Jupyter Notebook 其實就是網上常見的Ipython Notebook發展到現在改了個名。 本身是不用配置的,執行時也沒必要在Terminal裡輸入source activate tensorflow。 直接開啟,新建檔案的時候可以選不同虛擬環境的核心。比如我只有Tensorflow子環境,New下面就有2項,一個是Python [root] ,另一個就是Python [Tensorflow]。 至於Spyder IDE,優點就是能夠檢視變數,為了呼叫Tensorflow的python直譯器而不是Anaconda3 預設的python直譯器, 在Tools-->preferences-->Console-->Advanced Settings-->Python Executable中把預設的 /home/"yourusrname"/anaconda3/bin/python 改成 tensorflow子環境的python直譯器目錄即可。注意我寫的“yourusrname”是指代了你的ubuntu使用者名稱。 好了!大功告成!至此為止你就可以放心開發你所需要的東西了!