在服务器下安装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]
大功告成,祝大家安装顺利!!!