配置GPU加速的tensorflow
說明1:Tensorflow本身的安裝是很容易的,但是深度學(xué)習(xí)訓(xùn)練的實際數(shù)據(jù)都是非常大的,GPU速度是CPU的幾十倍,僅使用CPU版本的tensorflow訓(xùn)練模型難以達(dá)到效果,這就需要利用GPU多核的優(yōu)勢來加速計算。
說明2:使用GPU加速的前提條件是當(dāng)前系統(tǒng)可以使用顯卡,并且顯卡支持CUDA并行計算,虛擬機(jī)下不支持使用獨(dú)立顯卡,所以虛擬機(jī)下不能安裝GPU版本的tensorflow。雙系統(tǒng)支持獨(dú)立顯卡。
前提條件:
1.操作系統(tǒng):centos
7或ubuntu16.4
2.硬件條件:Nvidia顯卡(查詢當(dāng)前系統(tǒng)是否支持獨(dú)立顯卡,顯卡是否支持CUDA)
準(zhǔn)備工作:(ubuntu系統(tǒng)省略這一步)
yum更新下,安裝Development
Tools軟件包
1.sudo
yum update
2.sudo
yum group install ‘Development Tools’
安裝Nvidia驅(qū)動
說明:下面的方法只適合centos系統(tǒng),若是ubuntu,一般自帶獨(dú)立顯卡驅(qū)動,可輸入nvidia-smi查看,否則需要另外安裝。安裝完以后輸入nvidia-smi,若查看到信息說明已經(jīng)安裝好驅(qū)動。
Nvidia官網(wǎng)上有顯卡驅(qū)動的軟件包下載,但安裝前需要繁瑣的配置,這里我們選擇更簡單的方式,通過軟件源安裝:
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版本的,然后就可以進(jìn)行安裝:
sudo shcuda_8.0.44_linux.run
這里會詢問是否要安裝驅(qū)動,因為前面我們已經(jīng)安裝好了驅(qū)動,所以這里別選
記住CUDA的根目錄是在/usr/local/cuda-8.0和/usr/local/cuda,后者是前者的一個鏈接
安裝完后,配置環(huán)境變量,在~/.bash_profile中添加:(如果找不到./.bash_profile文件,請需要在每一次啟動tensorflow時配置環(huán)境變量,參考快速啟動部分)
export? LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
exportCUDA_HOME=/usr/local/cuda
安裝cudnn
Tensorflow還需要cudnn插件,這個可以從Nvidia官網(wǎng)下載,我下的版本是v5.1,下載完后解壓并復(fù)制到相應(yīng)的文件夾。
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計算環(huán)境
激活環(huán)境,使用conda安裝TensorFlow
安裝成功后,每次使用TensorFlow的時候需要激活conda環(huán)境
建立conda環(huán)境-tensorflow
#python2.7
$ conda create -n tensorflow-gpu python=2.7
# Python 3.5
$ conda create -n tensorflow python=3.5
激活conda環(huán)境-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
設(shè)置快速啟動
編輯可執(zhí)行文件_GPU_TF_(先創(chuàng)建文件,然后sudo chmod 777 filename),輸入以下內(nèi)容(若發(fā)現(xiàn)文本文件無法切換到insert模式,進(jìn)入root權(quán)限,修改/etc/vim/vimrc.tiny文件,將set compatible設(shè)置成set nocompatible .保存退出即可。這是因為有時候系統(tǒng)會默認(rèn)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,并且到達(dá)tensorflow指定目錄。
使用TF-SLIM
tf-slim是基于tensoflow開發(fā)的輕量級庫,提供了原始的許多模型和寫好的網(wǎng)絡(luò),以及一些處理腳本,可直接使用或者根據(jù)需要修改。
下載tf-slim庫,直接解壓,然后將里面的內(nèi)容拷貝到./anaconda2/envs/tensorflow-gpu/lib/python2.7/site-packages/tensorflow/models/下面即可,拷貝之后里面有一個slim文件夾,就是我們需要的內(nèi)容。
測試tensorflow
啟動tensorflow,在slim目錄下面輸入命令:
sh ./scripts/finetune_inception_v1_on_flowers.sh
先后出現(xiàn)一下兩部分內(nèi)容即表示使用了GPU加速(圖1),并且開始訓(xùn)練(圖2)。


按安裝CPU版本:
安裝Anaconda( bash Anaconda2-4.3.0-Linux-x86_64.sh一路yes)
建立一個conda計算環(huán)境
激活環(huán)境,使用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