1 安裝選擇
1.1 平臺
目前TensorFlow已支持Mac先改、Ubuntu和Windows三個(gè)主流平臺(64位平臺)首懈,
1.2 GPU vs CPU
在安裝時(shí)可以選擇安裝版本是否支持GPU卒密,
1.3 二進(jìn)制安裝 vs 源碼安裝
同時(shí),安裝時(shí)可以考慮采用二進(jìn)制安裝祝峻,還是源碼安裝牡整,
1.4 二進(jìn)制安裝選擇
二進(jìn)制安裝可以有多種選擇,
1.5 實(shí)際使用選擇
手頭上有兩臺電腦疼约,
- MacBook Pro (Retina, 13-inch, Early 2015)
處理器:2.7 GHz Intel Core i5
內(nèi)存:8GB 1867MHz DDR3
顯卡:Intel Iris Graphics 6100 1536MB - 攀升兄弟組裝臺式機(jī)
處理器:英特爾 Core i7-6700 @3.40GHz 四核
主板:華碩 B150M-ET M2 SERIES
內(nèi)存:8G(威剛DDR4 2801MHz)
硬盤:三星 MZ7TE256HMHP-00000(256GB/固態(tài)硬盤)
顯卡:Nvidia GeForce GTX 950(2GB)
其中,
MacBook Pro采用基于Anaconda的二進(jìn)制安裝方式(僅支持CPU)蝙泼。Anaconda是一個(gè)集成平臺程剥,包含大多數(shù)機(jī)器學(xué)習(xí)的常用工具,
- NumPy:科學(xué)運(yùn)算包
- SciPy:在NumPy的基礎(chǔ)上構(gòu)建汤踏,功能更加強(qiáng)大的科學(xué)計(jì)算包
- Matplotlib:類似Matlab的繪圖工具包
- Scikit-learn:經(jīng)典機(jī)器學(xué)習(xí)工具包
- Pandas:數(shù)據(jù)處理和分析工具包(可用于數(shù)據(jù)讀寫织鲸、清洗、填充和分析等場景)
采用Anaconda安裝方案溪胶,一方面MacBook Pro的開發(fā)環(huán)境很容易搭建(幾句命令即可完成)搂擦,另一方面,基于Anaconda的環(huán)境哗脖,也可以方便驗(yàn)證簡單的機(jī)器學(xué)習(xí)算法瀑踢。
對于臺式機(jī)則采用了Ubuntu+GPU+TensorFlow源碼編譯的方式扳还,進(jìn)行TensorFlow環(huán)境搭建,下面我們著重介紹下這種安裝方式橱夭。
2 Ubuntu16.04+TensorFlow(GPU)源碼編譯
2.1 Ubuntu系統(tǒng)安裝
目前氨距,大多數(shù)計(jì)算機(jī),包括臺式機(jī)已沒有了光驅(qū)棘劣,同時(shí)俏让,Ubuntu的系統(tǒng)安裝盤也不易獲得。針對這種情況茬暇,我們可以采用U盤來進(jìn)行安裝首昔。具體步驟可以參考:《Ubuntu 16.04 U盤安裝圖文教程》
2.2 禁用UEFI安全啟動
對于華碩 B150M-ET主板,UEFI默認(rèn)是開啟的糙俗。而UEFI開啟會導(dǎo)致第三方驅(qū)動安裝失斃掌妗(如顯卡驅(qū)動,這是源碼編譯安裝GPU支持的TensorFlow臼节,遇到的第一個(gè)坑)撬陵。具體步驟可以參考:《華碩主板禁用UEFI安全啟動》
2.3 安裝NVIDIA驅(qū)動
2.3.1 安裝方式
英偉達(dá)的顯卡驅(qū)動有三種方式:
- apt-get+系統(tǒng)設(shè)置安裝
- 安裝CUDA時(shí)順便安裝
- 官方下載最新驅(qū)動并安裝
參考:《Ubuntu 16.04安裝NVIDIA驅(qū)動》
2.3.2 安裝步驟
本文采用第一種方案:
sudo apt-get install nvidia-367
然后進(jìn)入:System Settings->Software&Updates->Additional Drivers->,選擇NVIDIA Corporation[Using NVIDIA binary driver]
2.3.3 驗(yàn)證測試
nvidia-smi #若列出GPU的信息列表网缝,表示驅(qū)動安裝成功
nvidia-settings #若彈出設(shè)置對話框巨税,亦表示驅(qū)動安裝成功
2.4 安裝CUDA
CUDA(Compute Unified Device Architecture),是顯卡廠商N(yùn)VIDIA推出的運(yùn)算平臺粉臊〔萏恚可以理解成基于GPU并行計(jì)算的應(yīng)用層接口。
CUDA8.0下載地址
安裝Cuda的時(shí)候扼仲,需要關(guān)閉X服務(wù)远寸。
sudo service lightdm stop
這時(shí),系統(tǒng)會出現(xiàn)黑屏屠凶。此時(shí)驰后,同時(shí)按住[CTRL + ALT + F1]三個(gè)鍵進(jìn)入命令行模式(如果不能進(jìn)入命令行模式,可以參考《alt+ctrl+F1黑屏 矗愧,解決方案》)灶芝,
然后輸入[賬號],[密碼]后登陸唉韭。
在CUDA的下載目錄運(yùn)行夜涕,
sudo sh cuda_xxx.run
需要注意的是,在詢問是否安裝“NVIDIA Accelerated Graphics Driver”可以選擇“是”属愤,
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(y)es/(n)o/(q)uit: y
但在后續(xù)出現(xiàn)詢問是否安裝“X configuration”時(shí)女器,則需要選擇“否”,否則之前安裝的顯卡驅(qū)動就白安裝了住诸。
CUDA安裝結(jié)束后驾胆,則可以恢復(fù)到圖形界面模式涣澡,
sudo service lightdm start
到這里,CUDA的安裝還不算結(jié)束俏拱,需要將CUDA相關(guān)的內(nèi)容添加到系統(tǒng)環(huán)境變量中暑塑。安裝過程中Summary提示,
Please make sure that
– PATH includes /usr/local/cuda-8.0/bin
– LD_LIBRARY_PATH includes /usr/local/cuda-8.0/lib64, or, add /usr/local/cuda-8.0/lib64 to /etc/ld.so.conf and run ldconfig as root
CUDA相關(guān)的環(huán)境變量可以放在~/.bashrc中锅必,
vi ~/.bash_profile
在其中事格,增加如下兩行,
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda- 8.0/lib64:/usr/local/cuda-8.0/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda-8.0
2.5 安裝cuDNN
cuDNN(CUDA Deep Neural Network)相比標(biāo)準(zhǔn)的cuda搞隐,它在一些常用的神經(jīng)網(wǎng)絡(luò)操作上進(jìn)行了性能的優(yōu)化驹愚,比如卷積,pooling劣纲,歸一化逢捺,以及激活層等等。
下載地址:https://developer.nvidia.com/rdp/cudnn-download
下載cuDNN后進(jìn)行解壓癞季,并執(zhí)行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda-8.0/include
sudo cp -d cuda/lib64/libcudnn* /usr/local/cuda-8.0/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda-8.0/lib64/libcudnn*
2.6 gcc降低版本
網(wǎng)上說cuda8.0不支持5.0以上的編譯器劫瞳,因此需要降級,把編譯器版本降到4.9绷柒,但我看了CUDA8.0的安裝手冊《NVIDIA CUDA INSTALLATION GUIDE FOR
LINUX》志于,并沒有發(fā)現(xiàn)這一條,
在實(shí)際使用中废睦,還是將GCC做了降級(PS伺绽,在安裝時(shí)可以先不降級,看看是否會出問題)嗜湃,GCC降級方法如下奈应,
sudo apt-get install g++-4.9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
sudo update-alternatives --set cc /usr/bin/gcc
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
sudo update-alternatives --set c++ /usr/bin/g++
2.7 安裝Bazel
Bazel是一個(gè)構(gòu)建工具,即一個(gè)可以運(yùn)行編譯和測試來組裝軟件的工具购披,跟Make杖挣、Ant、Gradle刚陡、Buck惩妇、Pants和Maven一樣。TensorFlow的編譯是基于Bazel完成的橘荠。
Bazel官方地址:https://docs.bazel.build/versions/master/install.html
2.7.1 安裝準(zhǔn)備
2.7.2 安裝
Bazel可以通過apt-get和下載安裝兩種方式完成,本文中郎逃,采用下載安裝的方式實(shí)現(xiàn)哥童,
chmod +x PATH_TO_INSTALL.SH
./PATH_TO_INSTALL.SH --user
2.8 第三方庫安裝
sudo apt-get install python-numpy swig python-dev python-wheel
sudo apt-get install libcupti-dev
sudo apt-get install git
2.9 TensorFlow源碼編譯
2.9.1 下載
git clone https://github.com/tensorflow/tensorflow
2.9.2 編譯配置
cd ~/tensorflow
./configure
2.9.3 編譯安裝
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
bazel build -c opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
sudo pip install /tmp/tensorflow_pkg/tensorflow-0.10.0-cp2-none-any.whl
至此,便完成了支持GPU的TensorFlow源碼編譯褒翰。
2.10 環(huán)境測試
可以通過如下代碼進(jìn)行測試贮懈,
# Python
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
正常測試輸出匀泊,
Hello, TensorFlow!
3 資料參考
《Ubuntu 16.04 U盤安裝圖文教程》
《華碩主板禁用UEFI安全啟動》
《Ubuntu 16.04安裝NVIDIA驅(qū)動》
《alt+ctrl+F1黑屏 ,解決方案》
《Ubuntu16.04 下安裝GPU版TensorFlow(包括Cuda和Cudnn)》
《ubuntu16.04下安裝TensorFlow(GPU加速)》