深度學習開發環境搭建教程(Mac篇)


本文將指導你如何在自己的Mac上部署Theano + Keras的深度學習開發環境。

如果你的Mac不自帶NVIDIA的獨立顯卡(例如15寸以下或者17年新款的Macbook。具體可以在“關於本機->系統報告->圖形卡/顯示器”里查看),那么你可能無法在這台Mac上使用GPU訓練深度學習模型。不過這並不值得遺憾。事實上,我在自己的Macbook上(15-inch,Early 2013,NVIDIA GeForce GT 650M 1024 MB)做了一個簡單的測試:在mnist數據集上訓練CNN模型時,GPU模式相對於CPU模式僅節省了1/3的時間。這可能要歸咎於Mac上贏弱的顯卡。相比之下,我更推薦購買一台有着強勁性能的顯卡的PC本(比如某些游戲本)來搭建深度學習的開發環境,或者是直接租賃AWS的Instance服務。

下面步入正題。

安裝GPU開發環境

幾乎所有的主流深度學習框架在使用GPU進行模型訓練時都依賴於兩個底層環境:CUDA和cuDNN。前者是一個使用GPU進行並行計算的平台,后者是一個封裝了使用GPU加速神經網絡計算的library。

安裝CUDA

  1. 確保你的顯卡被CUDA所兼容。前往CUDA-capable GPU檢查可用的顯卡型號。

  2. 接下來,安裝xcode(通過App Store)和命令行工具:xcode-select --install。這一步會自動安裝clang編譯器,可以在命令行里輸入:/usr/bin/cc --version進行驗證。
    clang編譯器也是安裝Theano的預備環境之一。

  3. 前往官網下載並安裝CUDA8.0(dmg安裝包)。注意選擇相應的平台。這一步會同時安裝CUDA driver和CUDA toolkit。

  4. 配置環境變量。打開~/.bash_profile,輸入四行命令:

    export CUDA_ROOT=/Developer/NVIDIA/CUDA-8.0
    

export PATH=\(CUDA_ROOT/bin\){PATH:+:\({PATH}} export DYLD_LIBRARY_PATH=\)CUDA_ROOT/lib\({DYLD_LIBRARY_PATH:+:\){DYLD_LIBRARY_PATH}}
export LD_LIBRARY_PATH=\(CUDA_ROOT/lib:\)LD_LIBRARY_PATH
```

其中,環境變量CUDA_ROOT給Theano指定了CUDA的安裝目錄,也可以被設置為`/usr/local/cuda`(這兩個路徑下的文件均通過軟鏈接被link到了一起)。

配置完成后,退出編輯器,`source ~/.bash_profile`並執行`nvcc -V`驗證CUDA的安裝是否正常。

安裝cuDNN

  1. 前往官網下載cuDNN壓縮包。注意選擇合適的平台。我下載的是cuDNN5.1 for CUDA8.0(截止到17年4月,Theano尚不支持cuDNN6.0)。

  2. 解壓縮下載的文件,將include目錄下的*.h文件復制到$CUDA_ROOT/include目錄下;將lib目錄下的*.so文件復制到$CUDA_ROOT/lib目錄下。

至此,完成了GPU開發環境的基本部署。

安裝Theano

Theano的安裝極其簡單:

  1. 首先,前往Miniconda安裝Conda

  2. 使用Conda安裝第三方依賴(“<>”里為可選包):

    conda install numpy scipy mkl <nose> <sphinx> <pydot-ng>
    
  3. 使用Conda安裝Theano(如果出現網絡連接異常,也可以使用pip進行安裝。參見官網安裝指南):

    conda install theano pygpu
    

安裝Keras

Keras是一個建立在Theano和TensorFlow基礎上,封裝了大量底層接口,方便研究人員快速搭建模型原型的深度學習開發框架。它提供了pip和從源碼直接安裝兩種方式。

使用pip安裝:

sudo pip install keras

從源碼直接安裝:

git clone https://github.com/fchollet/keras.git
cd keras
sudo python setup.py install

Keras默認以TensorFlow為底層計算引擎。第一次執行import keras命令后,會生成~/.keras/keras.json文件。打開這個文件,將"backend": "tensorflow"修改為"backend": "theano",即完成了后端計算引擎到Theano的切換。

至此,一個基本的深度學習開發環境已搭建完成。重啟電腦以確保所有配置均已生效。

環境測試

我們可以運行一些demo來測試環境的安裝是否正常。

從Github上下載Keras的源碼,進入examples子目錄,輸入命令:

THEANO_FLAGS=mode=FAST_RUN python mnist_cnn.py

該命令將以CPU模式在mnist數據集上訓練CNN模型。

輸入命令:

THEANO_FLAGS='mode=FAST_RUN,device=cuda,floatX=float32,optimizer_including=cudnn' python mnist_cnn.py

該命令將以GPU模式(並使用cudnn加速)在mnist數據集上訓練CNN模型。

如果一切正常,你將看到類似下圖的屏幕輸出:
-c

我在自己的Macbbok Pro(15寸,13年初,GT 650M的1024MB顯卡)上分別測試了CPU,GPU,GPU with cuDNN三種模式下CNN模型(mnist數據集)的訓練性能,其結果如下(單位:秒):

-c

出乎意料的是,如果沒有cuDNN的加速,Mac上GPU的計算性能遠不如CPU!而即便使用了cuDNN的加速,模型的訓練也只不過縮短了1/3的時間。因此,如果想認真地玩一玩深度學習模型,還是建議上高性能的顯卡,或者直接用AWS的GPU服務吧!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM