深度学习(TensorFlow)环境搭建:(三)Ubuntu16.04+CUDA8.0+cuDNN7+Anaconda4.4+Python3.6+TensorFlow1.3

图片 9

2.2 cudnn

  • 下载cudnn文件,需要注册账号。
  • 安装下载好的cuDNN安装包,如果你安装cuda的目录为默认目录,就可以直接使用如下指令安装:

tar -xvf cudnn-9.0-linux-x64-v7.1.tgz -C /usr/local/

一、安装CUDA

  CUDA(Compute Unified Device
Architecture),是英伟达公司推出的一种基于新的并行编程模型和指令集架构的通用计算架构,它能利用英伟达GPU的并行计算引擎,比CPU更高效的解决许多复杂计算任务,想使用GPU就必须要使用CUDA。

(3)执行训练脚本

sh examples/mnist/train_lenet.sh

训练时间不同的显卡训练时间不同,gtx1080迭代10000次大约需要20s,最终结果如下所示:

I0716 14:46:01.360709 27985 solver.cpp:404]     Test net output #0: accuracy = 0.9908
I0716 14:46:01.360750 27985 solver.cpp:404]     Test net output #1: loss = 0.0303895 (* 1 = 0.0303895 loss)
I0716 14:46:01.360755 27985 solver.cpp:322] Optimization Done.
I0716 14:46:01.360757 27985 caffe.cpp:222] Optimization Done.

图片 1

模型精度在0.99以上。至此,在ubuntu16.04系统下使用gtx1080显卡+cudnn-v5的开发环境就搭建完成了。

Ubuntu 14.04 安装配置CUDA 
http://www.linuxidc.com/Linux/2014-10/107501.htm

Ubuntu 14.04下CUDA8.0 + cuDNN v5 + Caffe  安装配置 
http://www.linuxidc.com/Linux/2017-01/139300.htm

Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 )
http://www.linuxidc.com/Linux/2016-09/135016.htm

Ubuntu 16.04 安装配置MATLAB+Python +CUDA8.0+cuDNN+OpenCV3.1的Caffe环境 
http://www.linuxidc.com/Linux/2017-06/145087.htm

在Ubuntu 14.04上配置CUDA+Caffe+cuDNN+Anaconda+DIGITS 
http://www.linuxidc.com/Linux/2016-11/136775.htm

深度学习环境配置Ubuntu16.04+CUDA8.0+CUDNN5 
http://www.linuxidc.com/Linux/2017-09/147180.htm

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-10/147609.htm

图片 2

3. 安装TensorFlow-gpu

  • 安装anaconda,可以用来建立python3和TensorFlow的一些以来环境。

$ wget https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh    #下载anaconda
$ bash anaconda.sh      #安装anaconda
$ vim /root/.bashrc     #加入环境变量
    # 最后一行添加:
    export PATH="/root/anaconda3/bin:$PATH"
$ source /root/.bashrc
  • 安装TensorFlow

pip install tensorflow-gpu

(2)、激活 conda 环境

source activate tensorflow

(2)将标签数据转换成caffe使用的LMDB数据格式

sh examples/mnist/create_mnist.sh

目录

二、安装cuDNN

(1)获取数据

sh data/mnist/get_mnist.sh

2.3 环境变量设置

  • 环境变量

$ vim ~/.bashrc
在其最后添加:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
  • cuDNN建立连接

$ cd /usr/local/cuda/lib64
$ sudo rm -rf libcudnn.so libcudnn.so.7         #删除原有版本号,版本号在cudnn/lib64中查询
$ sudo ln -s libcudnn.so.7.0.5 libcudnn.so.7    #生成软连接,注意自己下载的版本号
$ sudo ln -s libcudnn.so.7 libcudnn.so 
$ sudo ldconfig     #立即生效

(1)、创建一个名为tensorflow的conda环境Python 3.6

#Python 2.7
conda create -n tensorflow python=2.7

#Python 3.4
conda create -n tensorflow python=3.4

#Python 3.5
conda create -n tensorflow python=3.5

#Python 3.6
conda create -n tensorflow python=3.6   #我下的TensorFlow对应的Python是3.6版本,那么我就使用这行

备注:(根据TensorFlow版本号,一定要设置Python版本号,切记切记切记!!!!!重要的事情说三遍!否则后面会报各种错的)

(1)安装必要的依赖库

sudo apt-get install build-essential
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev 
sudo apt-get libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

(2)解压修改配置文件

unzip caffe-master.zip
cp Makefile.config.example Makefile.config
vi Makefile.config

主要配置修改如下:

USE_CUDNN := 1
OPENCV_VERSION := 3
CUDA_DIR :=/usr/local/cuda-8.0
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
/usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial
WITH_PYTHON_LAYER := 1
USE_PKG_CONFIG := 1

(3)编译caffe

make -j8

可能遇到的错误1:src/caffe/net.cpp:8:18: fatal error: hdf5.h: No such
file or directory
解决方法:

cd /usr/lib/x86_64-linux-gnu
sudo ln -s libhdf5_serial.so.10.1.0 libhdf5_serial.so
sudo ln -s libhdf5_serial_hl.so.10.0.2 libhdf5_serial_hl.so

可能遇到的错误2:error – unsupported GNU version! gcc versions later
than 5.3 are not supported!
解决方法:修改/usr/local/cuda/include/host_config.h文件

#if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 3)
#error -- unsupported GNU version! gcc versions later than 5.3 are not supported!

改为:

 #if __GNUC__ > 5 || (__GNUC__ == 5 && __GNUC_MINOR__ > 4)
 #error -- unsupported GNU version! gcc versions later than 5.4 are not supported!

可能遇到的错误3:

/usr/include/string.h: In function ‘void* **__mempcpy_inline(void*, const void*, size_t)’: /usr/include/string.h:652:42: error: ‘memcpy’ was not declared in this scope return (char *) memcpy (__dest, __src, __n) + __n;**

解决方法:修改caffe-master的Makefile

NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

改为:

NVCCFLAGS +=-D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

可能遇到的错误4:

caffe/proto/caffe.pb.h: No such file or directory

使用如下方法生成caffe.pb.h

protoc src/caffe/proto/caffe.proto --cpp_out=.  
mkdir include/caffe/proto  
mv src/caffe/proto/caffe.pb.h include/caffe/proto 

2.1 cuda

  • 官网下载cuda,最好下载9.0版本:
  • 选择符合自己机器的设置,选择runfile(local)下载到centos中:
    图片 3
  • 需要下载所有补丁,下载后安装cuda:

$ sudo sh cuda_9.0.176_384.81_linux.run
  • 测试cuda是否安装

$ cd /usr/local/cuda/samples/1_Utilities/deviceQuery
$ sudo make
$ ./deviceQuery

结果:
图片 4

(4)、在conda环境中安装TensorFlow GPU版(本文主要以安装GPU版讲解)

6.运行手写体例程

进入到caffe根目录下,运行脚本

  • 1.
    安装显卡驱动
  • 2.
    安装CUDACUDNN
  • 3.
    安装TensorFlow-gpu
  • 测试

2.2、安装cuDNN

安装cudnn比较简单,简单地说,就是复制几个文件:库文件和头文件。将cudnn的头文件复制到cuda安装路径的include路径下,将cudnn的库文件复制到cuda安装路径的lib64路径下。具体操作如下

 1 #解压文件
 2 tar -zxvf cudnn-8.0-linux-x64-v7.tgz
 3 
 4 #切换到刚刚解压出来的文件夹路径
 5 cd cuda 
 6 #复制include里的头文件(记得转到include文件里执行下面命令)
 7 sudo cp /include/cudnn.h  /usr/local/cuda/include/
 8 
 9 #复制lib64下的lib文件到cuda安装路径下的lib64(记得转到lib64文件里执行下面命令)
10 sudo cp lib*  /usr/local/cuda/lib64/
11 
12 #设置权限
13 sudo chmod a+r /usr/local/cuda/include/cudnn.h 
14 sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
15 
16 #======更新软连接======
17 cd /usr/local/cuda/lib64/ 
18 sudo rm -rf libcudnn.so libcudnn.so.7   #删除原有动态文件,版本号注意变化,可在cudnn的lib64文件夹中查看   
19 sudo ln -s libcudnn.so.7.0.2 libcudnn.so.7  #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
20 sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
21 sudo ldconfig -v #立刻生效

 

备注:上面的软连接的版本号要根据自己实际下载的cudnn的lib版本号

如图所示:

图片 5

最后我们看看验证安装cudnn后cuda是否依旧可用

nvcc --version  # or nvcc -V 

(5)安装

sudo make install

1. 安装显卡驱动

  • 检测显卡驱动及型号

$ sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
  • 添加ELPepo源

$ sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm
  • 安装NVIDIA驱动检测

$ sudo yum install nvidia-detect
$ nvidia-detect -v

$ yum -y install kmod-nvidia

图片 6

(3)安装cudnn-v5.1库

2. 安装CUDACUDNN


3.安装cuda-8.0

测试

输入:

$ python
>>> import tensorflow

显示:

>>> import tensorflow
/root/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
  from ._conv import register_converters as _register_converters
>>> 

未报错,安装成功。

转载请注明出处。

三、安装Anaconda

  Anaconda是python的一个科学计算发行版,内置了数百个python经常会使用的库,也包括许多做机器学习或数据挖掘的库,这些库很多是TensorFlow的依赖库。安装好Anaconda可以提供一个好的环境直接安装TensorFlow。

  去Anaconda官网()下载需要版本的Anaconda

图片 7

  下载完后执行如下命令

sudo bash Anaconda3-4.4.0-Linux-x86_64.sh

  如图所示:

图片 8

  安装anaconda,回车后,是许可文件,接收许可。直接回车即可。最后会询问是否把anaconda的bin添加到用户的环境变量中,选择yes。在终端输入python发现依然是系统自带的python版本,这是因为环境变量的更新还没有生效,命令行输入如下命令是安装的anaconda生效。如果conda
–version没有找到任何信息,说明没有加入到环境变量没有,需要手动加入,如图所示:

图片 9

  刷新环境变量

source /etc/profile 或者 source ~/.bashrc #(全局的环境变量)

④编译cuda例子与测试

进入到/usr/local/cuda/NVIDIA_CUDA-8.0_Samples/1_Utilities/deviceQuery目录执行:

sudo make
./deviceQuery

打印出类似如下信息,说明装成功

./deviceQuery Starting...
 CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 2 CUDA Capable device(s)
Device 0: "GeForce GTX 1080"
  CUDA Driver Version / Runtime Version          8.0 / 8.0
  CUDA Capability Major/Minor version number:    6.1
  Total amount of global memory:                 8110 MBytes (8504279040 bytes)
  (20) Multiprocessors, (128) CUDA Cores/MP:     2560 CUDA Cores
  GPU Max Clock rate:                            1772 MHz (1.77 GHz)
  Memory Clock rate:                             5005 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 2097152 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(131072), 2D=(131072, 65536), 3D=(16384, 16384, 16384)
  Maximum Layered 1D Texture Size, (num) layers  1D=(32768), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(32768, 32768), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 2 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Domain ID / Bus ID / location ID:   0 / 1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图