转载请注明出处:blog.csdn.net/sproll
本文描述在ubuntu系列操作系统上安装gpu版本的tensorflow的过程。
0,准备工作
BIOS中关闭板载显卡,显示器接在nvidia显卡上。
下载cuda和cudnn:cuda_8.0.44_linux.run, cudnn-8.0-linux-x64-v5.1.tgz
以上驱动为本文编写时的最新驱动。
1,安装linux
安装mint 18或者mint 18.1(也可以安装对应的ubuntu 16.04),并更新源。
具体操作步骤见网上的帮助文档。
2,禁止nouveau驱动
nouveau为非官方的开源nvidia驱动,默认情况下系统采用该驱动配合nvidia显卡。安装官方驱动前要先关闭该驱动。
在/etc/modprobe.d/blacklist.conf文件中添加:
blacklist nouveau
执行完毕后重启。此时电脑进入CPU模拟显卡输出视频的状态。
3,解决tty不能显示问题
设置tty显示参数,否则如果在quiet模式下即关闭xwindows,将导致黑屏。
在/etc/default/grub文件中,修改GRUB_CMDLINE_LINUX_DEFAULT的值为nomodeset。
然后执行以下命令更新grub:
sudo update-grub
执行完毕后重启。
4,关闭xwindows
安装显卡驱动必须先关闭当前xwindows。
执行以下命令关闭xwindows:
sudo init 3
执行完毕后,如有需要,使用以下命令切换tty:
Ctrl+alt+Fn
Fn为F1-F8的功能键。
5,安装cuda
cuda和cudnn为nvidia的支持库,tensorflow运行时需要它的支持。
执行cuda安装文件:cuda_8.0.44_linux.run,安装过程中需要回答一些问题,如果不明白问题的含义,可以对所有问题都选择accept、yes或者直接按回车(有时会提示选择某些组件的安装路径,按回车就是使用默认的路径)。
在安装cuda过程中,会提示是否选择安装nvidia驱动,一定要选择是。
6,安装cudnn
Cudnn包(cudnn-8.0-linux-x64-v5.1.tgz)解压后,将include和lib64目录拷贝到/usr/local/cuda-8.0目录下。
7,安装python pip和python dev
tensorflow需要python支持,执行以下命令行安装:
sudo apt-get install python-pip python-dev
8,安装tensorflow
根据phthon和cuda版本,安装相应版本的tensorflow。本次安装的phthon为V2.7,cuda为V8.0,相应的tensorflow版本为V1.0:
在命令行中执行安装命令:
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0-cp27-none-linux_x86_64.wh
其中,tensorflow的地址(https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-1.0.0-cp27-none-linux_x86_64.wh)在其github主页上有说明,不同的python版本、操作系统、是否使用GPU,都会对应不同的下载地址。
安装过程中,下载可能会失败,失败的话重新执行以上命令安装。
有时pip会因为版本过旧安装失败,失败时会提示执行更新pip命令:pip --upgrade pip
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the ‘pip --upgrade pip’ command.
然后继续重新安装tensorflow即可。
9,添加cuda路径
安装完成后,在用户目录下修改.bashrc文件(.bashrc为隐藏文件),添加以下两行,将cuda目录添加到环境变量的lib搜索目录中。
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
10,测试tensorflow
输入以下文件内容,保存为hello.py文件。
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print sess.run(hello)
a = tf.constant(10)
b = tf.constant(32)
print sess.run(a+b)
打开控制台,进入hello.py的目录,输入以下命令,运行python:
python hello.py
如果输出以下内容表示tensorflow加载成功。
Hello, TensorFlow!
42
如下图所示: