Tensorflow 1.2+Ubuntu 16.04+Cuda 8.0+cuDNN 5.1配置流程

今天刚配置了tensorflow,趁热打铁,把过程记录下来,给自己和别人一个参考。
首先安装Ubuntu16.04 。用官网的镜像用UltraISO制作启动优盘安装,具体过程不介绍了。
要安装Tensorflow,首先要安装Cuda 和cuDNN 。(当然,如果你只想用CPU训练,那就不用安装这两个包,直接跳到安装Tensorflow的位置就好啦)
官网上提供了很多种安装Tensorflow的方式,这里我们用最傻瓜的一种:
用PIP直接安装。这种安装方式优点:简单,不容易出错
缺点:太简单了,以至于依赖库的版本不能自己定制,所以,如果你要按照这个步骤安装,切记看好标题中我给出的Cuda和cuDNN的版本,别下载错了(不是这个版本识别不到) 。
如果你不是安装Tensorflow 1.2,那么一定要到Tensorflow的官网找到你安装的Tensorflow版本需要的Cuda和cuDNN版本,切勿下载了错的版本。下面开始介绍安装步骤:
首先安装Cuda:
https://developer.nvidia.com/cuda-downloads 下载需要的Cuda安装包,并且按照官网的要求输入命令即可,这里我下载的设置如下图:(大家根据自己的需要更改)
选项
按照官网,我们下载完安装包后输入以下命令完成安装:
sudo dpkg -i cuda-repo-ubuntu1604-8-0-local-ga2_8.0.61-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
下一步安装cuDNN:
https://developer.nvidia.com/cudnn 去下载cuDNN(注意版本,注意版本,注意版本)。这个要下载前要先用邮箱免费注册个账号,加入什么开发者计划。(比较简单,几分钟搞定)
下载完了之后是个压缩包。这个安装更简单,解压后会得到include 和lib64两个文件夹。安装完Cuda后,你会在/usr/local/cuda下也找到include 和lib64两个文件夹。把你解压出的文件分别复制到/usr/local/cuda下的同名文件夹中就完成了。(简单说就是Cuda少几个文件,咱们给它补充上)
这两步做完之后,将下面的东西加到环境变量:(你可以选择你喜欢的添加方式)

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda

至此,我们初期准备就差不多了。根据官网要求,我们还应该安装一个叫libcupti的库,即NVIDIA CUDA Profile Tools Interface,就输入以下命令即可。

sudo apt-get install libcupti-dev

下面我们来安装Tensorflow。原版的Ubuntu16.04里是没有pip的(python 3应该是自带pip的,我没有尝试,我这里使用的python 2.7),所以我们要先安装pip。用apt-get的方式安装pip总有各种依赖错误,这里给大家推荐另一种方式:
https://pip.pypa.io/en/stable/installing/ 下载get-pip.py。然后运行:

sudo python get-pip.py

这样就完成了pip的安装。最后我们安装tensorflow:
要安装最新版的tensorflow,只需以下命令:(自己选适用的哈)

 sudo pip install tensorflow      # Python 2.7; CPU support (no GPU support)
 sudo pip3 install tensorflow     # Python 3.n; CPU support (no GPU support)
 sudo pip install tensorflow-gpu  # Python 2.7;  GPU support
 sudo pip3 install tensorflow-gpu # Python 3.n; GPU support 

如果上面的失败了,或者你想指定版本,可以采用这种方式:

 sudo pip  install --upgrade tfBinaryURL   # Python 2.7
 sudo pip3 install --upgrade tfBinaryURL   # Python 3.n 

这里tfBinaryURL 换成tensorflow的镜像URL。这些URL可以在
https://www.tensorflow.org/install/install_linux#the_url_of_the_tensorflow_python_package找到。比如1.2版本的GPU的镜像URL如下:
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.2.1-cp27-none-linux_x86_64.whl
好了,至此,安装就应该完成了。
新建一个python文档,输入以下代码:

# -*- coding: utf-8 -*-
import tensorflow as tf
import numpy as np

# 使用 NumPy 生成假数据(phony data), 总共 100 个点.
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()

# 启动图 (graph)
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)

# 得到最佳拟合结果 W: [[0.100  0.200]], b: [0.300]

然后执行,就可以发现输出的数值一步步接近最佳拟合的那个数值啦。至此,你的Tensorflow之旅开始了。

后记:至此,如果你的电脑在运行tensorflow时不能在屏幕中打印出你的显卡型号(GPU版本哈,用CPU的忽略),并且训练速度比较慢,提示一些硬件警告,训练时候显卡也不发热。。。。那么你的显卡的驱动程序有问题。你需要重新安装显卡驱动。
(我在安装GTX 740显卡的时候,并不需要这一步,linux自带的驱动可以用,但是给GTX 1070显卡安装的时候,就发现默认的驱动无法工作,和你的显卡型号关系很大)
别担心,安装过程不麻烦。
首先干掉原来的驱动程序。

sudo ls -lh /etc/modprobe.d/blacklist.conf
sudo chmod 666 /etc/modprobe.d/blacklist.conf
sudo gedit /etc/modprobe.d/blacklist.conf

改属性好用gedit编辑驱动程序配置文件。打开后,在文件末尾添加几行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

然后保存,就干掉了原来的显卡驱动。
怎么装新的呢?我们要进入纯命令行模式(我们不能依赖显卡驱动)
按Ctrl+Shift+F1(F1-F6看你喜欢啦,都可以),输入用户名,密码登录。
输入以下命令:

sudo service lightdm stop
sudo apt-get install nvidia-367
sudo service lightdm start

这三句话分别意思是:
1 杀死图形界面服务
2 安装驱动(注意,上网查查你的显卡对应的数字是多少,1070 是 nvidia-367)
3 重启图形服务
上面的命令执行后会自动转到图形界面,因为之前Ubuntu系统集成的显卡驱动程序nouveau被禁用了,这时候可能无法显示图形界面,此时再按下Ctrl+Alt+F1进入命令行模式,输入reboot 重启计算机即可。
到此,你的tensorflow就完全配置成功了。本教程本人亲手在两台计算机上试验过,应该比较全面了,希望对大家有所帮助。
关于显卡驱动程序安装一部分,本人参考了以下文章,感谢原作者的帮助 。
http://www.2cto.com/kf/201702/594221.html

猜你喜欢

转载自blog.csdn.net/xingce_cs/article/details/74079783
今日推荐