本文主要是对整个流程的一个总结,一些遗漏的细节可以参考网上相关教程。
之前在ubuntu上安装过caffe 和tensorflow比较顺利,不过后面系统崩溃,重新安装,又踩了很多坑,简要记下,作为参考。
1) Nvidia显卡驱动安装
2) cuda 安装
3) cudnn安装
4) tensorflow安装
1) Nvidia显卡驱动安装
我的显卡是GTX960
nvidia驱动安装是一个比较头疼的事情,网上较多的教程通过下载.run文件,采用终端命令,禁用自带的 nouveau nvidia驱动来安装。前一次采用这种方法,遇到x-service未关闭,最后勉强解决,这次又遇到同样的问题,试了各种方法解决不了,最后重装系统。采用系统自带软件安装,非常方便。
因此建议采用第二种方法,安全方便:
步骤:
a) 进入系统设置--软件更新(software&updates)--额外驱动(additional Drivers),选择第一个选项(using nvidia binary driver --version .....),其他不变,点击Apply changes,。
b) 重启系统。
c) 终端输入nvidia-smi 进行验证,安装成功.
2) cuda 安装
a) 官网下载cuda_8.0.44_linux.run文件
b) chmod +x /*.run 更改权限
c) cd到文件目录, ./cuda_8.0.44_linux.run 进行安装 (因为之前已经安装过驱动,开始安装时,第一个选项,是否安装驱动,选n 不安装(很重要),其它选y,路径默认即可)
d) 添加路径: 打开 /etc/profile 在末尾添加如下语句(也可以在~/.bashrc下添加):
export PATH=/usr/local/cuda-8.0/bin:$PATH
exportLD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
#需要重启电脑使其生效
3) 安装cudnn
a) cd到文件路径,解压文件:
#tar -zxvf cudnn-8.0-linux-x64-v5.0-ga.tgz
#之前装的5.0最后跑tensorflow时提示编译版本过低,所以换成高版本5.1编译通过
#安装按照教程先将5.0原文件删除:
cd /usr/local/cuda/lib64
sudo rm -f libcudnn* #删掉cudnnv5.0
tar xvzf cudnn-8.0-linux-x64-v5.1-prod.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*
4) 安装tensorflow
参考官网,在virtualenv installation安装
相继执行如下命令:
$sudo apt-get install python-pip python-dev python-virtualenv
$virtualenv --system-site-packages ~/tensorflow
$ source ~/tensorflow/bin/activate # If using bash
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 8.0 and CuDNN v5. For other versions, see "Installing from sources" below.
(tensorflow)$ export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp27-none-linux_x86_64.whl
# Python 2
(tensorflow)$ pip install --upgrade $TF_BINARY_URL
# 最后进行测试:
$ python...>>> import tensorflow as tf>>> hello = tf.constant('Hello, TensorFlow!')>>> sess = tf.Session()>>> print(sess.run(hello))Hello, TensorFlow!>>> a = tf.constant(10)>>> b = tf.constant(32)>>> print(sess.run(a + b))42>>>
相关博客参考:
1) GPU 编程入门到精通(一)之 CUDA 环境安装
2) Ubuntu 16.04安装N卡官方驱动
3) NVIDIA CuDNN 安装说明
4) tensorflow官网教程