深度學習開發環境搭建
工欲善其事,必先利其器。首先我們需要花費一些時間來搭建開發環境。
1.安裝python。python是人工智慧開發首選語言。
2.安裝virtualenv。virtualenv可以為一個python應用建立一套隔離的執行環境,避免不同版本的python或第三方庫互相影響。類似的虛擬環境還有anaconda,anaconda自帶常用庫,因此安裝包有幾百兆,與anaconda相比,virtualenv更輕量化,只有十幾兆的大小,可定製化高,推薦virtualenv。使用virtualenv這種虛擬環境的好處是安全,如果某個版本庫裝壞了,直接刪除這個虛擬環境的資料夾即可,不必重灌系統的python。
3.安裝常用的第三方庫。常用的有numpy(科學計算)、scipy(科學計算)、matplotlib(作圖)、sciket-learn(機器學習)、keras(tensorflow的高層封裝)、tensorflow(深度學習)。使用pip速度慢的問題點這裡檢視解決方法。
4.安裝CUDA和cuDNN(GPU版tensorflow)
Mac OS基於Unix,相比Windows做開發更方便,但是最大的缺點就是非常封閉,各種沙盒安全機制,可能正是由於這個原因,Google在後期的Tensorflow GPU版本中放棄了對Mac的支援。本文介紹Mac OS和Windows兩種系統中的環境搭建。Mac OS中,使用僅cpu版本的tensorflow(當然也可以安裝舊版本的支援gpu的版本,前提是你的顯示卡是Nvidia的卡);Windows中,使用支援gpu版本的tensorflow。筆者目前是使用雙系統,跑普通機器學習演算法和不是很深的神經網路時使用Mac OS,跑深一些的神經網路使用Windows,畢竟gpu比cpu快的多。(英偉達官方說計算能力3.0或更高的NVIDIA顯示卡才支援gpu版tensorflow,所以安裝之前到
Mac OS
1.安裝python
Mac OS自帶python2.7,我們需要自己安裝python3。目前tensorflow在Mac中支援的python版本為2.7、3.4、3.5、3.6。我們使用3.6版本。下載地址:點這裡。安裝也很簡單,一直next就好了。開啟終端輸入
python3
出現下面提示說明已經安裝成功:
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
2.安裝virtualenv
在終端輸入:
sudo pip install --upgrade virtualenv
安裝完成,建立一個全新的 virtualenv 環境,例如我們想建立一個叫AI的開發環境,路徑為~,那麼我們輸入:
virtualenv --no-site-packages ~/AI
–no-site-packages是不復制系統python中的庫,安裝的就是一個不帶任何第三方庫的很乾淨的環境。如果想拷貝系統python中的庫,需要使用--system-site-packages
。
如果系統中有多個python,比如同時有python2和python3,想建立一個python2.7的環境,可以輸入:
virtualenv -p /usr/bin/python2 --no-site-packages ~/
進入這個環境:
source ~/AI/bin/activate
此時終端字首變成
(AI) ~ $:
這時候就可以在這個環境安裝第三方庫了,系統Python環境不受任何影響。安裝時直接用pip,不需要使用sudo。例如安裝numpy:
(AI) ~ $: pip install numpy
退出環境:
(AI) ~ $: deactivate
就回到正常環境了,終端變回:
~ $:
3.安裝常用的第三方庫
進入虛擬環境:
source ~/AI/bin/activate
安裝numpy:
(AI) ~ $: pip install numpy
安裝scipy:
(AI) ~ $: pip install scipy
安裝matplotlib:
(AI) ~ $: pip install matplotlib
安裝sciket-learn:
(AI) ~ $: pip install sklearn
安裝keras:
(AI) ~ $: pip install keras
安裝tensorflow:
(AI) ~ $: pip install https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.12.0-py3-none-any.whl
其它版本點這裡
4.測試執行
import tensorflow as tf
import numpy as np
hello=tf.constant('hhh')
sess=tf.Session()
print (sess.run(hello))
如果沒有報錯說明安裝成功了。
Windows
1.安裝python
Windows不自帶python,目前tensorflow在Win中支援的python版本為3.5、3.6。我們使用3.6版本。直接下載python3.6安裝就好了。下載地址:點這裡。安裝也很簡單,一直next就好了。
新增python的環境變數:
“我的電腦”-“屬性”-“高階系統設定”-“環境變數”,在“系統變數”中選中“Path”,點“編輯”,加上python的路徑,例如“C:\Python36”。這樣就可以在命令提示符中使用python了。開啟命令提示符輸入
python
出現下面提示說明已經安裝成功:
Python 3.6.7 (v3.6.7:6ec5cf24b7, Oct 20 2018, 03:02:14)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
2.安裝virtualenv
新增pip的環境變數:
環境變數“Path”中加上python\Script的路徑,例如“C:\Python36\Script”。這樣就可以在命令提示符中使用pip了。
在命令提示符輸入:
pip install --upgrade virtualenv
安裝完成,建立一個全新的 virtualenv 環境,例如我們想建立一個叫AI的開發環境,路徑為C:Users\xxx\,那麼我們輸入:
virtualenv --no-site-packages C:Users\xxx\AI
安裝完成。使用和上文Mac中類似,不再贅述。
3.安裝常用的第三方庫
和上文Mac中類似,不再贅述。只需注意tensorflow選擇win版支援gpu的版本。
pip install https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.12.0-cp36-cp36m-win_amd64.whl
4.安裝CUDA和cuDNN
因為在Windows中我們安裝的是支援gpu的tensorflow,因此比Mac中多兩個安裝步驟。CUDA是由NVIDIA推出的通用平行計算架構,該架構使GPU能夠解決複雜的計算問題。cuDNN是NVIDIA專門針對深度神經網路(Deep Neural Networks)中的基礎操作而設計基於GPU的加速庫。下面我們來安裝它們。
首先確保電腦安裝好了Nvidia顯示卡驅動,開啟控制面板---NVIDIA控制面板---幫助---系統資訊---元件,如果支援CUDA會有NVCUDA.DLL 以及支援的CUDA版本。
根據查詢到的支援的CUDA版本到這裡查詢匹配的tensorflow和cuDNN版本。
注意一定要版本匹配!
注意一定要版本匹配!
注意一定要版本匹配!
根據查詢好的版本下載正確的CUDA(下載地址:點這裡)和cuDNN(下載地址:
CUDA下載好是exe檔案,直接雙擊安裝。安裝好路徑像下面這樣"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0"。
cuDNN下載好是一個壓縮包,裡面有3個資料夾。一個include,一個lib64,還有一個bin。把它們複製到上面CUDA的安裝資料夾("C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0")中。
配置環境變數,在環境變數“Path”中加上這三個路徑:
a."C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64
b."C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin
c."C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
安裝完成。
5.測試執行
import tensorflow as tf
import numpy as np
hello=tf.constant('hhh')
sess=tf.Session()
print (sess.run(hello))
如果沒有報錯說明安裝成功了,如果報錯請仔細檢查版本,python版本+tensorflow版本+CUDA版本+cuDNN版本。