当前位置: 代码迷 >> 综合 >> Ubuntu 14.04 安装 CUDA8.0 cudnn 5.1 tensorflow1.2.1GPU
  详细解决方案

Ubuntu 14.04 安装 CUDA8.0 cudnn 5.1 tensorflow1.2.1GPU

热度:78   发布时间:2023-12-17 18:22:55.0

0. 电脑配置

  1. Win10 + Ubuntu 14.04 LTS 双系统。
  2. i5 7500 CPU
  3. nvidia GTX 1050 GPU 2G 显存

1. Ubuntu 的开发环境

  1. kernel: 4.4.0-87-generic
  2. g++ (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
  3. Python 2.7.13 :: Anaconda 4.4.0 (64-bit) # 我装了Anaconda2,此Python是其自带的。
  4. gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4

2. 安装nvidia显卡驱动

不用自己手动下载驱动的。
参考: http://blog.csdn.net/autocyz/article/details/52299889

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-375 # 根据提示安装相应的版本
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev

执行完上述后,重启(reboot)。
重启后输入:

nvidia-smi

如果出现了你的GPU列表,则说明驱动安装成功了:
这里写图片描述

3. 安装CUDA 8.0

cuda是nvidia的编程语言平台,想使用GPU加速就必须要使用cuda。
当然,首先要确定你的Nvidia显卡支持CUDA8.0才可以。

3.1 下载cuda8.0的安装文件

从这里下载cuda8.0的安装文件
https://developer.nvidia.com/cuda-release-candidate-download
选择对应的开发环境, 下载 runfile(local)。
这里是nvidia给出的官方安装指南(遇到问题时可以查阅):
http://docs.nvidia.com/cuda/cuda-installation-guide-linux/#axzz4HIBXnwyt

3.2 安装时的选项

下载完cuda8.0后,执行如下语句,运行runfile文件:

sudo sh cuda_8.0.27_linux.run

执行后会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia375驱动时,一定要选择否,因为前面我们已经安装了更加新的nvidia375,所以这里不要选择安装。而且据说安装了此驱动会产生linux循环登陆的问题。
其余的都直接默认或者选择是即可。

3.3 配置环境变量

安装完毕后,再声明一下环境变量,并将其写入到 ~/.bashrc 的尾部:

sudo gedit ~/.bashrc

在打开的文本末尾加上:

export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

然后设置环境变量和动态链接库,在命令行输入:

$ sudo gedit /etc/profile

在打开的文件末尾加入:

export PATH=/usr/local/cuda/bin:$PATH

注意符号是英文的,否则下次重启ubuntu会有警告信息窗口。

保存之后,创建链接文件:

sudo gedit /etc/ld.so.conf.d/cuda.conf

在打开的文件中添加如下语句:

/usr/local/cuda/lib64

然后执行

sudo ldconfig

使链接立即生效。
这时有可能会有 libEGL.so.1 不是符号连接 之类的错误信息。
可以参考: http://blog.csdn.net/u012283902/article/details/66471349

原因: 系统找的是一个符号连接,而不是一个文件。这应该是个bug….
解决方法:
1.对这两个文件更名
2.重新建立符号连接:

sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org sudo mv
/usr/lib32/nvidia-375/libEGL.so.1
/usr/lib32/nvidia-375/libEGL.so.1.org sudo ln -s
/usr/lib/nvidia-375/libEGL.so.375.39 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.39

3.4 测试cuda的Samples

测试之前,先把NVIDIA_CUDA-8.0_Samples文件夹权限改成可以读写增删的。

cd /usr/local/cuda-7.5/samples/1_Utilities/deviceQuery
make
sudo ./deviceQuery

如果显示的是一些关于GPU的信息,则说明安装成功了。
这里写图片描述

4. 安装CUDNN 5.1

cudnn有5.1和6.0两个主要版本。tensorflow1.2.1 不支持6.0版本的cudnn, 所以要安装cudnn5.1版本。

4.1 下载CUDNN 5.1

官网:
https://developer.nvidia.com/cudnn
需要使用邮箱注册。
下载cuDNN v5.1 Library for Linux.
这里写图片描述

4.2 安装cuDNN 5.1

下载完cudnn5.1之后进行解压,cd进入cudnn5.1解压之后的include目录,在命令行进行如下操作:

sudo cp cudnn.h /usr/local/cuda/include/    #复制头文件

再将cd进入lib64目录下的动态文件进行复制和链接:

sudo cp lib* /usr/local/cuda/lib64/    #复制动态链接库
cd /usr/local/cuda/lib64/
sudo rm -rf libcudnn.so libcudnn.so.5    #删除原有动态文件
sudo ln -s libcudnn.so.5.0.10 libcudnn.so.5  #生成软衔接
sudo ln -s libcudnn.so.5 libcudnn.so      #生成软链接

如果以后要换cuDNN的版本,照着上述步骤重装一遍即可。

5. 安装tensorflow 1.2.1

5.1 pip安装

参考
https://www.tensorflow.org/install/install_linux 之 Installing with native pip。

sudo apt-get install python-pip python-dev   # for Python 2.7
pip install tensorflow-gpu  # Python 2.7; GPU support

官网也列出了其他安装方法, 但是上述方法是最简单方便的。但是要有网络才可以。
也可以安装CPU版本的。
离线安装1.3.1rc0版本,但是失败了。
使用Anaconda方法,但是每次都要激活才能使用,太麻烦了。而且,在PyCharm里没有办法运行调试。

5.2 验证安装成功

用终端运行python, import tensorflow 试验:
这里写图片描述
没有错误就是安装成功了。

6. 使用tensorflow训练softmax 数字识别

使用Mnist数据集。参考:http://wiki.jikexueyuan.com/project/tensorflow-zh/tutorials/mnist_beginners.html

import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data", one_hot=True)
import tensorflow as tf
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x,W) + b)
y_ = tf.placeholder("float", [None, 10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
init = tf.global_variables_initializer()sess = tf.Session()
sess.run(init)for i in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run( train_step, feed_dict={x: batch_xs, y_:batch_ys})correct_prediction = tf.equal(tf.argmax(y,1), tf.arg_max(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))print sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})

这里写图片描述

如果没有错误,就证明你安装成功了TensorFlow了。
开始你的深度学习之旅吧!

7. 后记:

无论在Linux还是Windows下做Python开发,一款好用的Python IDE是必不可少的。推荐大家使用PyCharm。Linux和Windows版本都有。界面美观好用,代码提示功能非常棒!
只是提醒大家注意,PyCharm的Python Console只能开一个,否则容易造成CUDA_OUT_OF_MEMORY的错误。
另外,Python有各种各样的库,如numpy等。一一安装无比复杂,特别是没有网络的时候。
推荐大家Anaconda。python2.*使用Anaconda2,python3.*使用Anaconda3。几乎常用的库都集成在了一个*.sh里面了。

两者的下载,安装和配置请参考我的博文:http://blog.csdn.net/full_speed_turbo/article/details/50990371
使用Anaconda2和PyCharm, 双剑合璧,天下无敌!