在服務器下安裝tensorflow_gpu版,耗時2天,終於搞定!離線安裝需要謹慎選擇版本
1.首先下載必須的安裝包
- cuda_8.0.44_linux.run
- cudnn-8.0-linux-x64-v5.1.tgz
- protobuf-3.2.0-cp35-cp35m-manylinux1_x86_64.whl
- nvidia-diag-driver-local-repo-rhel7-384.66-1.0-1.x86_64.rpm
- tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl
- Anaconda3-4.2.0-Linux-x86_64.sh(注意python3.5只有4.2.0版是,不要下錯了)
- pycharm-community-2017.2.4.tar.gz
2.開始安裝
- 首先,查看環境中是否安裝nvidia的驅動:
$ nvidia-smi
,如下圖爲已安裝;
如果沒有 ,安裝驅動:
$ sudo rpm -i nvidia-diag-driver-local-repo-rhel7-384.66-1.0-1.x86_64.rpm
- 安裝cuda
$sudo sh cuda_8.0.44_linux.run
- 安裝cudnn
$tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
然後將庫和頭文件copy到cuda目錄(一定是你自己安裝的目錄如/usr/local/cuda-8.0),不過正確安裝的話,ubuntu一般就會有軟鏈接/usr/local/cuda -> /usr/local/cuda-8.0/
$ 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*
- 設置環境變量
$ sudo vim /etc/profile
在文件末尾添加如下內容
export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64
export CUDA_HOME=/usr/local/cuda
千萬別忘了,要用一下語句使該環境生效:
$ source /etc/profile
- 安裝Anaconda3
$ bash Anaconda3-4.2.0-Linux-x86_64.sh
安裝成功後需要關閉Terminal,重新打開一個Terminal,Anaconda3環境才能生效。
安裝protobuf
$ pip install protobuf-3.2.0-cp35-cp35m-manylinux1_x86_64.whl
安裝tensorflow
$ pip install tensorflow_gpu-1.1.0-cp35-cp35m-linux_x86_64.whl
- 安裝pycharm
$ tar zxvf pycharm-community-2017.2.4.tar.gz
$ cd pycharm-community-2017.2.4/bin
- 啓動pycharm
$ ./pycharm.sh
設置python解釋器路徑
到此爲止,完成Tensorflow_gpu開發環境搭建,安裝過程中遇到很多坑,爬了好久才上岸,安裝需要root權限,使用的時候也需要root。大家注意系統安全,哈哈。
-測試一下看看是否成功了:
import tensorflow as tf
import numpy as np
x_data = np.float32(np.random.rand(2, 100))
y_data = np.dot([0.100, 0.200], x_data) + 0.300
b = tf.Variable(tf.zeros([1]))
W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
y = tf.matmul(W, x_data) + b
loss = tf.reduce_mean(tf.square(y - y_data))
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for step in xrange(0, 201):
sess.run(train)
if step % 20 == 0:
print (step, sess.run(W), sess.run(b))
- 結果
結果:
0 [[ 0.04449975 0.05022997]] [ 1.04979897]
20 [[ 0.00405465 0.05206435]] [ 0.43587646]
40 [[ 0.06425215 0.14253049]] [ 0.35196277]
60 [[ 0.08647 0.17783827]] [ 0.31990141]
80 [[ 0.0948422 0.19148116]] [ 0.30762693]
100 [[ 0.09802746 0.19673003]] [ 0.30292371]
120 [[ 0.09924454 0.19874559]] [ 0.30112091]
140 [[ 0.09971047 0.1995189 ]] [ 0.30042976]
160 [[ 0.09988902 0.19981553]] [ 0.30016479]
180 [[ 0.09995744 0.19992925]] [ 0.30006319]
200 [[ 0.09998368 0.19997287]] [ 0.30002424]
大功告成,祝大家安裝順利!!!