配置GPU加速的tensorflow

说明1:Tensorflow本身的安装是很容易的,但是深度学习训练的实际数据都是非常大的,GPU速度是CPU的几十倍,仅使用CPU版本的tensorflow训练模型难以达到效果,这就需要利用GPU多核的优势来加速计算。

说明2:使用GPU加速的前提条件是当前系统可以使用显卡,并且显卡支持CUDA并行计算,虚拟机下不支持使用独立显卡,所以虚拟机下不能安装GPU版本的tensorflow。双系统支持独立显卡。

前提条件:

1.操作系统:centos

7或ubuntu16.4

2.硬件条件:Nvidia显卡(查询当前系统是否支持独立显卡,显卡是否支持CUDA)

准备工作:(ubuntu系统省略这一步)

yum更新下,安装Development

Tools软件包

1.sudo

yum update

2.sudo

yum group install ‘Development Tools’

安装Nvidia驱动

说明:下面的方法只适合centos系统,若是ubuntu,一般自带独立显卡驱动,可输入nvidia-smi查看,否则需要另外安装。安装完以后输入nvidia-smi,若查看到信息说明已经安装好驱动。

Nvidia官网上有显卡驱动的软件包下载,但安装前需要繁琐的配置,这里我们选择更简单的方式,通过软件源安装:

12345678910

#安装elrepo源

sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgsudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

#探测要安装的包

sudo yum install nvidia-detectnvidia-detect

#安装sudo yum install kmod-nvidia

#最后重启,然后检查是否安装成功

ls -la /dev | grep nvidia(或nvidia-smi能查看到显卡信息)

先去Nvidia上下载CUDA包,我下载的是8.0版本的,然后就可以进行安装:

sudo shcuda_8.0.44_linux.run

这里会询问是否要安装驱动,因为前面我们已经安装好了驱动,所以这里别选

记住CUDA的根目录是在/usr/local/cuda-8.0和/usr/local/cuda,后者是前者的一个链接

安装完后,配置环境变量,在~/.bash_profile中添加:(如果找不到./.bash_profile文件,请需要在每一次启动tensorflow时配置环境变量,参考快速启动部分)

Tensorflow还需要cudnn插件,这个可以从Nvidia官网下载,我下的版本是v5.1,下载完后解压并复制到相应的文件夹。

tar xvzfcudnn-8.0-linux-x64-v5.1.tgz
sudo cp cuda/include/cudnn.h  /usr/local/cuda/includesudo
cp cuda/lib64/libcudnn*  /usr/local/cuda/lib64

安装Anaconda($bash

Anaconda2-4.3.0-Linux-x86_64.sh(最后写YES)$source  ./bashrc)

建立一个conda计算环境

激活环境,使用conda安装TensorFlow

安装成功后,每次使用TensorFlow的时候需要激活conda环境

建立conda环境-tensorflow

#python2.7
$ conda create -n tensorflow-gpu python=2.7
# Python 3.5
$ conda create -n tensorflow python=3.5

激活conda环境-tensorflow

$ source activate tensorflow

安装GPU版本Tensorflow(# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7. Requires CUDA toolkit 8.0 and CuDNN v5.)

# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5. Requires CUDA toolkit 8.0 and CuDNN v5.

设置快速启动

编辑可执行文件_GPU_TF_(先创建文件,然后sudo chmod 777 filename),输入以下内容(若发现文本文件无法切换到insert模式,进入root权限,修改/etc/vim/vimrc.tiny文件,将set compatible设置成set nocompatible .保存退出即可。这是因为有时候系统会默认vim兼容vi,所以使用vi的命令)

#!/bin/bash
#echo'cuda &cudnn'
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
echo 'Tesorflow GPU workspace ~'
SLIM_HOME=./anaconda2/envs/tensorflow-gpu/lib/python2.7/site-packages/tensorflow
cd $SLIM_HOME &&source activate tensorflow-gpu &&pwd

保存退出。

下次启动时,直接sourceGPU_TF_即可启动tensorflow,并且到达tensorflow指定目录。

使用TF-SLIM

tf-slim是基于tensoflow开发的轻量级库,提供了原始的许多模型和写好的网络,以及一些处理脚本,可直接使用或者根据需要修改。

下载tf-slim库,直接解压,然后将里面的内容拷贝到./anaconda2/envs/tensorflow-gpu/lib/python2.7/site-packages/tensorflow/models/下面即可,拷贝之后里面有一个slim文件夹,就是我们需要的内容。

测试tensorflow

启动tensorflow,在slim目录下面输入命令:

sh ./scripts/finetune_inception_v1_on_flowers.sh

先后出现一下两部分内容即表示使用了GPU加速(图1),并且开始训练(图2)。



按安装CPU版本:

安装Anaconda( bash Anaconda2-4.3.0-Linux-x86_64.sh一路yes)

建立一个conda计算环境

激活环境,使用conda安装TensorFlow

使用下面的链接安装0.11版本的tensorflow:

export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
sudo pip install—ignore-installed--upgrade $TF_BINARY_URL