3.1 tensorflow的編譯及安裝
安裝TensorFlow有兩種主要情況:
- 使用CPU,安裝相對簡單。
- 使用GPU,需要先安裝CUDA和cuDNN,過程較為復(fù)雜。
無論哪種情況,我們都建議使用Anaconda作為Python的環(huán)境管理工具,因?yàn)樗梢杂行П苊庠S多兼容性問題。
TensorFlow目前在Linux和Mac系統(tǒng)上支持較為完善(對Windows的支持尚不全面)。在Mac系統(tǒng)上,主要使用CPU版本(因?yàn)镸ac系統(tǒng)很少使用NVIDIA顯卡,而TensorFlow對CUDA的支持較好,對AMD的OpenCL支持仍處于實(shí)驗(yàn)階段),其安裝方式與Linux的CPU版本基本一致。
安裝Anaconda
Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,內(nèi)置了數(shù)百個(gè)常用的Python庫,包括用于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘的庫,如Scikit-learn、numpy、scipy和pandas等,其中一些可能是TensorFlow的依賴庫。
Anaconda的下載地址:
在Mac上,有兩種安裝方式:一種是圖形界面的安裝程序(.pkg),另一種是命令行安裝程序(.sh),通常選擇后者。下載后,執(zhí)行以下命令:
bash Anaconda3-4.4.0-MacosX-x86_64.sh
TensorFlow CPU版本的安裝
TensorFlow的CPU版本安裝相對簡單,分為兩種情況:
- 安裝預(yù)編譯的release版本,推薦大多數(shù)用戶使用這種方式。
- 使用分支源碼進(jìn)行編譯安裝。
第一種:安裝release版本
從https://github.com/tensorflow/tensorflow下載最新的release版本(.whl)到本地,然后執(zhí)行:
pip install --gpgrade tensorflow-1.3.0rc0-py3-none-any.whl
第二種:使用源碼編譯安裝
首先,確保系統(tǒng)已安裝gcc(版本最好在4.8到5.4之間),并安裝構(gòu)建工具bazel。bazel是Google的編譯工具,以其快速、可擴(kuò)展、靈活和可靠著稱,下載和安裝方式如下:
安裝步驟:
(1) 下載源碼包并解壓:
(2) 進(jìn)入源碼目錄并配置:
cd tensorflow-1.3.0-rc0./configure
選擇Python路徑,確保使用Anaconda的Python路徑;選擇CPU編譯優(yōu)化選項(xiàng),默認(rèn)-march=native即可;是否使用jemalloc作為默認(rèn)的malloc實(shí)現(xiàn)(僅Linux),默認(rèn)即可;是否開啟Google云平臺支持,選擇否;是否需要支持hadoop File System,如果需要讀取hdfs數(shù)據(jù),選擇yes;是否開啟XLA JIT編譯功能,建議選擇no;選擇Python的Library路徑,依然使用Anaconda的路徑;不選擇使用GPU,包括OpenCL和CUDA。
(3) 執(zhí)行編譯:
bazel build --copt=-march=native -c opt //tensorflow/tools/pip_package:build_pip_package
(4) 編譯結(jié)束后,生成pip安裝包:
bazel-bin/tensonflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
(5) 最后安裝:
pip install /tmp/tensorflow_pkg/tensorflow-xxx-xxx-xxx-xxx.whl
TensorFlow GPU版本的安裝
TensorFlow的GPU版本安裝相對復(fù)雜。首先需要NVIDIA顯卡,然后安裝顯卡驅(qū)動、CUDA和cuDNN。
CUDA的安裝
CUDA是NVIDIA推出的用于通用計(jì)算(General Purpose GPU)的SDK,安裝包通常包含顯卡驅(qū)動。
先下載NVIDIA CUDA:
(1) 暫停NVIDIA驅(qū)動的X server:
sudo init 3
(2) 將CUDA的安裝包權(quán)限設(shè)置為可執(zhí)行,并安裝:
chmod u+x cuda_8.0.61_375.26_linux.runsudo ./cuda_8.0.61_375.26_linux.run
(3) 按q鍵跳過協(xié)議說明,接受協(xié)議后選擇安裝驅(qū)動程序。
(4) 選擇安裝路徑,通常默認(rèn)/usr/local/cuda-8.0。
(5) 不安裝CUDA例子。
(6) 安裝完畢。
cuDNN的安裝
cuDNN是NVIDIA推出的深度學(xué)習(xí)中cnn和rnn的高度優(yōu)化的實(shí)現(xiàn)。
下載cuDNN:
進(jìn)入安裝目錄并解壓包:
cd /usr/localsudo tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
這樣就完成了cuDNN的安裝。
CUDA的環(huán)境變量設(shè)置
vim ~/.bashrcexport LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64:$LD_LIBRARY_PATHexport CUDA_HOME=/usr/local/cuda-8.0export PATH=/usr/local/cuda-8.0/bin:$PATHsource ~/.bashrc
安裝TensorFlow
從https://github.com/tensorflow/tensorflow下載最新的GPU release版本(.whl)到本地,執(zhí)行:
pip install --gpgrade tensorflow_gpu-1.3.0rc0-cp35-cp35m-linux_x86_64.whl
然后一步步選擇安裝完成。