配置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能查看到显卡信息)
安装CUDA(注意tensorflow0.10以上版本需要8.0的CUDA)
先去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时配置环境变量,参考快速启动部分)
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
exportCUDA_HOME=/usr/local/cuda
安装cudnn
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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
安装tensorflow(基于Anaconda的安装)
安装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.)
(tensorflow)$ sudo pip install --ignore-installed --upgradehttps://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5. Requires CUDA toolkit 8.0 and CuDNN v5.
(tensorflow)$ sudopip3install --ignore-installed --upgradehttps://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.11.0-cp35-cp35m-linux_x86_64.whl
设置快速启动
编辑可执行文件_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