今天下午安裝了一下tensorflow,很久以前安裝過caffe,給我的感覺就是tensorflow安裝起來會比caffe簡單點,下面是我的操作步驟
首先介紹一下我的環(huán)境
硬件配置:CPU i5,GPU NVIDIA 1080,三星 ssd256G,西數(shù)2T機械硬盤,主板 微星b360
系統(tǒng):Ubuntu16.04 64位
安裝步驟
首先要明確要安裝cuda、cudnn使得tensorflow能利用gpu進行加速,cuda、cudnn版本是要對應(yīng)的,cuda我沒有選最新的,怕有坑我選的是cuda8.0,至于cudnn要選擇什么對應(yīng)的版本可以再(https://developer.nvidia.com/cudnn)查看,下面也會細講
1.gcc版本控制
因為gcc5及以后在編譯的時候要做一些其他操作,如下官網(wǎng)所述

所以我是為了快速配好就將gcc降級,降到4.9,執(zhí)行下列操作
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.cuda 8.0安裝
在tensorflow安裝頁面可以看到下面圖片,官方推薦cuda選擇8.0以上版本,cudnn選擇6.0以上版本(cudnn至于具體選哪個下面再講)

cuda下載地址:https://developer.nvidia.com/cuda-downloads
打開后一般是下載最新cuda的界面如下

選擇legacy releases可以查看以前版本的cuda

這里選擇的是8.0版本,點擊出現(xiàn)下面界面后選擇對應(yīng)的版本的deb[local]包即可下載(使用deb包安裝會比較方便)

下載好deb安裝包后執(zhí)行下列三個命令即可安裝完成

這時候cuda已經(jīng)安裝好了,安裝在/usr/local/cuda
2.1環(huán)境變量設(shè)置
在文件~/.bashrc中設(shè)置環(huán)境變量,在該文件的最后加上下面兩行
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
2.2檢查cuda是否安裝正確
cd到/usr/loca/cuda/bin/(cuda的安裝目錄,這個是默認(rèn)的,也許你的不同),運行cuda-install-samples-7.5.sh ./ ,表示在當(dāng)前文件夾下安裝samples,然后進入NVIDIA_CUDA-7.5_Samples下make
make成功后cd到NVIDIA_CUDA-7.5_Samples/bin/x86_64/linux/release下,運行./deviceQuery看是否安裝成功
運行./bandwidthTest看顯卡和cuda有沒有連接成功
3.cudnn 6.0安裝
cudnn的下載需要登錄才能獲取,沒有其他要求
下載地址:https://developer.nvidia.com/cudnn
登錄后,和cuda一樣,顯示的是下載最新版本

點擊archived cudnn releases會顯示舊版本的下載,這里選擇的是for cuda8.0,cudnn6.0(我之前裝過5.0,到后面編譯會出錯,后面改成了6.0)

下載好cudnn后,執(zhí)行下面語句
比如我下載地址為~/Downloads/cudnn-8.0-linux-x64-v6.0.tgz,
cd ~/Downloads/
tar xvzf /cudnn-8.0-linux-x64-v6.0.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
到這里cudnn就配置好了
4.其他軟件的安裝
在編譯tensorflow之前官網(wǎng)所述,還要安裝bazel和一些python庫

4.1bazel安裝
bazel的官方安裝文檔,在里面可以看到,它可以通過apt安裝,按照下圖執(zhí)行即可安裝完成

4.2python一些庫的安裝
這部分安裝在tensorflow官網(wǎng)也有,如下圖

5.tensorflow編譯
到這里依賴都安裝好了,下面是源碼編譯tensorflow
1.從github獲取tensorflow
git clone https://github.com/tensorflow/tensorflow.git
2.配置
cd tensorflow # cd to the top-level directory created
./configure
這里配置官網(wǎng)提供了一張圖,安裝官網(wǎng)配置就可以

3.編譯
運行下列語句即可,第二句中的路徑/tmp可以自己改,我就放在/tmp中
bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
4.安裝
運行下面語句,語句中的路徑/tmp就是上個步驟的路徑,tensorflow-1.10.0-py2-none-any.whl中的版本號可以從/tmp中查看,用你自己的版本號即可
sudo pip install /tmp/tensorflow_pkg/tensorflow-1.10.0-py2-none-any.whl
到這里tensorflow就安裝完成了
可以在終端輸入python,然后在python環(huán)境中輸入下列語句,查看tensorflow是否正確安裝
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
如果能成功輸出Hello, TensorFlow!,說明安裝成功了