花了三天时间,各种排错走弯路,终于配置好了gpu版tensorflow,分享给大家
Ubuntu14.04 安装流程就不讲了,不是重点想要说的
确认显卡已安装
$lspci | grep -i nvidia
确认gcc版本
$gcc –version
第一步:
下载cuda8.0
官方网站:https://developer.nvidia.com/cuda-80-ga2-download-archive
下载后的文件名为cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
cd到下载目录
$sudo dpkg -i cuda-repo-ubuntu1404-8-0-local-ga2_8.0.61-1_amd64.deb
$sudo apt-get update
$sudo apt-get install cuda
将cuda8.0加入环境变量
$sudo vim /etc/profile
在最后一行加入
export PATH=/usr/local/cuda-8.0/bin:$PATH
然后保存退出
$source /etc/profile
$sudo vim /etc/ld.so.conf
在后面加入
/usr/local/cuda-8.0/lib64
保存退出
$sudo ldconfig
此时一定要测试一次cuda是否安装成功,如果没有成功后面会遇到很多问题
$cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
$sudo make
$./deviceQuery
如果显示pass,则成功
第二步:
安装cuDNN6.0
下载:cuDNN6.0(我会在文尾留下网盘链接)
建议从百度里找网盘链接,我是在CSDN里下的
下载文件名cudnn-8.0-linux-x64-v6.0.tgz
解压:$tar zxvf cudnn-8.0-linux-x64-v6.0.tgz
解压后是一个cuda文件夹,里面有两个文件夹include和lib64
拷贝include和lib64里的内容到usr/local/cuda/include和usr/local/cuda/lib64并改写权限
$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
$sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
添加用户环境变量
$sudo vim ~/.bashrc
在末尾加上下面内容
export CUDA_HOME=/usr/local/cuda-8.0
export PATH=$PATH:/usr/local/cuda-8.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
第三步:
python3.4
Ubuntu14.04系统自带python2.7和python3.4,但是默认会使用python2.7
所以修改python默认版本
$sudo update-alternatives –install /usr/bin/python python /usr/bin/python2.7 2
[sudo] password for ss:
$sudo update-alternatives –install /usr/bin/python python /usr/bin/python3.4 1
$sudo update-alternatives –config python
会出现
- 0 /usr/bin/python2.7 2 auto mode
1 /usr/bin/python2.7 2 manual mode
2 /usr/bin/python3.4 1 manual mode
选择2即可
第四步:
安装gpu版tensorflow
可以直接使用命令$sudo pip install tensorflow-gpu系统自己下载匹配版本
或者下载好gpu版本tensorflow
下载地址https://pypi.python.org/pypi/tensorflow-gpu(里面有很多版本,不要下错了)
我用的tensorflow_gpu-1.4.0-cp34-cp34m-manylinux1_x86_64.whl
然后安装:
$sudo pip install tensorflow_gpu-1.4.0-cp34-cp34m-manylinux1_x86_64.whl
然后静静的等待安装成功!
安装完后我输入
$python
import tensorflow
提示
ImportError: libcudnn.so.6: cannot open shared object file: No such file or directory
错误原因,无法建立软连接
输入
sudo ldconfig /usr/local/cuda/lib64
则会返回
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.6 is not a symbolic link
说明确实没有建立软连接
解决方法:
方法1:
删除原本的软连接
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.6
然后修改文件权限,并创建新的软连接
sudo chmod u=rwx,g=rx,o=rx libcudnn.so.6.0.20
sudo ln -s libcudnn.so.6.0.20 libcudnn.so.6
sudo ln -s libcudnn.so.6 libcudnn.so
方法2:
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig
sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig
ldconfig命令是一个动态链接库管理命令,是为了让动态链接库为系统共享
以上便是便是安装全过程!!!
用小脚本检测一下tensorflow能不能调用gpu运行
import tensorflow as tf
a = tf.constant([1.0, 2.0, 3.0], shape=[3], name=’a’)
b = tf.constant([1.0, 2.0, 3.0], shape=[3], name=’b’)
c = a + b
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))
如果显示:
add: (Add): /job:localhost/replica:0/task:0/device:GPU:0
2017-12-06 20:30:23.050462: I tensorflow/core/common_runtime/placer.cc:874] add: (Add)/job:localhost/replica:0/task:0/device:GPU:0
b: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2017-12-06 20:30:23.050490: I tensorflow/core/common_runtime/placer.cc:874] b: (Const)/job:localhost/replica:0/task:0/device:GPU:0
a: (Const): /job:localhost/replica:0/task:0/device:GPU:0
2017-12-06 20:30:23.050507: I tensorflow/core/common_runtime/placer.cc:874] a: (Const)/job:localhost/replica:0/task:0/device:GPU:0
[ 2. 4. 6.]
则安装成功啦!
链接:https://pan.baidu.com/s/1qYn3wFq 密码:82j4