高级大数据人才培养丛书之一,大数据挖掘技术与应用刘鹏主编赵海峰副主编BIGDATA刘鹏张燕总主编深度学习第六章深度学习开源框架6.1Caffe6.2TensorFlow6.3其它开源框架全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用of402习题6.1Caffe第六章深度学习开源框架of403Caffe是一个清晰、高效、开源的深度学习框架,很适合初学者。它由加州大学伯克利的PHD贾扬清开发是应用最广泛的深度学习框架之一。6.1.1Caffe框架贾扬清6.1Caffe第六章深度学习开源框架of404Caffe是一个清晰、高效、开源的深度学习框架,很适合初学者。它由加州大学伯克利的PHD贾扬清开发是应用最广泛的深度学习框架之一。6.1.1Caffe框架多语言速度快易上手社区好代码组织好。可读性强,例子多。采用MKL、OpenBLAS等计算库,支持GPU加速。国内外都有较活跃的社区、且有很多衍生项目。支持C++、Python和Matlab。6.1Caffe第六章深度学习开源框架of4056.1.2安装Caffe1、操作系统为centenos72、安装NvidiaGPU驱动(1)添加ELRepo源#rpm--import://第六章深度学习开源框架of4066.1.2安装Caffe(2)安装显卡驱动#yuminstallnvidia-x11-drvnvidia-x11-drv-32bit6.1Caffe第六章深度学习开源框架of4076.1.2安装Caffe(3)重启#reboot(4)查看GPU信息#nvidia-smi6.1Caffe第六章深度学习开源框架of4086.1.2安装Caffe(5)安装CUDA7.5Toolkit:CUDA7.5Toolkit为Nvidia工具包。该工具包包括GPU加速库,调试和优化工具,C/C++编译器和运行库等。#cd/root/cDeep/Nvidia/#shcuda_7.5.18_linux.run6.1Caffe第六章深度学习开源框架of4096.1.2安装Caffe(6)安装cuDNNv4:针对深度学习框架的一套GPU加速方案#cd/root/cDeep/Nvidia/#tarxvzfcudnn-7.0-linux-x64-v4.0-prod.tgz#cpcuda/include/cudnn.h/usr/local/cuda-7.5/include#cpcuda/lib64/libcudnn*/usr/local/cuda-7.5/lib64#chmoda+r/usr/local/cuda-7.5/lib64/libcudnn*(7)配置环境变量#vim/etc/profile在文件最后添加exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64exportCUDA_HOME=/usr/local/cuda-7.5更新环境变量#source/etc/profile6.1Caffe第六章深度学习开源框架of40106.1.2安装Caffe3、Caffe安装(1)安装依赖库#source/etc/profile#yuminstallprotobuf-develsnappy-developencv-develboost-devel#cd/root/cDeep/Caffe/#unzipleveldb-master.zip#cdleveldb-master#./build_detect_platformbuild_config.mk./#make#cp–rinclude/leveldb/usr/local/include#cp/root/cDeep/Caffe/leveldb-master/out-static/libleveldb.a/usr/local/lib6.1Caffe第六章深度学习开源框架of40116.1.2安装Caffe(5)安装GFLAGS#cd/root/cDeep/Caffe/#unzipgflags-master.zip#cdgflags-master#mkdirbuild&&cdbuild#exportCXXFLAGS=-fPIC&&cmake..&&makeVERBOSE=1#make&&makeinstall(6)安装LMDB#cd/root/cDeep/Caffe/#unziplmdb.zip#cdlmdb-mdb.master/libraries/liblmdb#make&&makeinstall(2)安装GCC和GCC++#yum-yinstallgccgcc-c++(3)安装GIT和CMAKE#yum-yinstallgit#yum-yinstallcmake(4)安装GLOG#cd/root/cDeep/Caffe/#tarzxvfglog-0.3.3.tar.gz#cdglog-0.3.3#./configure#make#makeinstall6.1Caffe第六章深度学习开源框架of40126.1.2安装Caffe(7)安装HDF5#cd/root/cDeep/Caffe/#tar–xfhdf5-1.8.17.tar#cdhdf5-1.8.17#./configure--prefix=/usr/local/hdf5#make&&makeinstall(8)安装OpenBlas#cd/root/cDeep/Caffe/#unzipOpenBLAS.zip#cdxianyi-OpenBLAS-3f6398a#make#makePREFIX=/usr/local/openblasinstall(9)安装OpenCV#cd/root/cDeep/Caffe/#unzipopencv-2.4.13.zip#cdopencv-2.4.13#mkdirrelease&&cdrelease#cmake-DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=/usr/local-DBUILD_PYTHON_SUPPORT=ON-DBUILD_EXAMPLES=ON..#make#makeinstall6.1Caffe第六章深度学习开源框架of40136.1.2安装Caffe(10)修改配置文件#cd/root/cDeep/Caffe/#unzipcaffe-master.zip&&cdcaffe-master#cpMakefile.config.exampleMakefile.config#vimmakefile.config修改makefile.config文件里的信息1)USE_CUDNN:=1使用cuda进行加速2)OPENCV_VERSION:=2对应OpenCV版本是2.4.1~2.4.133)CUDA_DIR:=/usr/local/cuda-7.5cuda头文件及库目录4)BLAS:=open使用openblasBLAS_INCLUDE:=/usr/local/openblas/include设置头文件路径BLAS_LIB:=/usr/local/openblas/lib设置动态库路径5)INCLUDE_DIRS:=/usr/local/include/usr/local/hdf5/include/usr/include/python2.76)设置其它依赖库头文件路径LIBRARY_DIRS:=/usr/local/lib/usr/lib/usr/local/hdf5/lib设置其它依赖库动态库路径6.1Caffe第六章深度学习开源框架of40146.1.2安装Caffe(11)Caffe编译#cd/root/cDeep/Caffe/#cdcaffe-master#makeall–j4#maketest#makeruntest6.1Caffe第六章深度学习开源框架of40156.1.3案例:基于Caffe的目标识别1.获取数据集#cd./data/cifar10#./get_cifar10.shcifar10数据集文件示意图Cifar10图像示意图6.1Caffe第六章深度学习开源框架of40166.1.3案例:基于Caffe的目标识别2.成训练及测试数据,将样本转为LMDB格式#cd./data/cifar10#./get_cifar10.sh3.训练及测试#cd./examples/cifar10&&./train_full.sh第六章深度学习开源框架6.1Caffe6.2TensorFlow6.3其它开源框架全国高校标准教材《云计算》姊妹篇,剖析大数据核心技术和实战应用of4017习题6.2TensorFlow第六章深度学习开源框架6.2.1TensorFlow框架of4018TensorFlow是Google开源的一个深度学习框架。实现了本地和分布式两种接口机制。本地实现机制的client端、master端和worker均运行在同一个机器中;分布式实现机制它与本地实现的代码基本相同,但是client端、master端和worker进程一般运行在不同的机器中,所包含的不同任务由一个集群调度系统进行管理。具备如下优点:1.多样化部署;2.可被基于梯度的机器学习算法借鉴;3.灵活的Python接口;4.可映射到不同硬件平台;5.支持分布式训练。6.2TensorFlow第六章深度学习开源框架6.2.2安装TensorFlowof40191、安装pip#cd/root/cDeep/Tensorflow/#pythonget-pip.pypip安装示意图6.2TensorFlow第六章深度学习开源框架6.2.2安装TensorFlowof40202.安装TensorFlow#cd/root/cDeep/Tensorflow/#pipinstall--upgradetensorflow-0.8.0-cp27-none-linux_x86_64.gpu.whl左图为tensorflow安装示意图6.2TensorFlow第六章深度学习开源框架6.2.2安装TensorFlowof40213.安装测试#python...importtensorflowastfhello=tf.constant('Hello,TensorFlow!')sess=tf.Session()print(sess.run(hello))Hello,TensorFlow!sess.close()exit()tensorflow测试示意图6.2TensorFlow第六章深度学习开源框架6.2.3案例:基于TensorFlow的目标识别of40221.下载Cifar10数据集#wget~kriz/cifar-10-binary.tar.gz#tar-xzfcifar-10-python.tar.gzCifar10数据集示意图6.2TensorFlow第六章深度学习开源框架6.2.3案例:基于TensorFlow的目标识别of40232.运行训练程序#cd/tensorflow/models/image/cifar10/#pythoncifar10_train.py3.运行测试程序#pythoncifar10_eval.py4.如图所示,资源消耗:CPU:~41%GPU:~42%耗时:~50min训练时资源消耗图6.2TensorFlow第六章深度学习开源框架6.2.3案例:基于TensorFlow的目标识别of40245.训练完成示意6.测试示意准确率:~84.4%第六章深度学习开源框架6.1Caffe6.2Ten