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