2017-08-17 10:58:37 shenmanli 阅读数 4823
  • 深度学习的数据科学和自然语言处理教程

    该视频教程探索一些自然语言处理技术的最新进展、深度学习在自然语言处理技术领域的应用、实践和数据资源,以及使用英特尔的Nervanan Platform的企业自然语言处理的应用案例和使用英特尔® AI技术的NLP企业精华案例。

    546 人正在学习 去看看 CSDN讲师
TensorFlow可以用单个GPU,加速深度学习模型的训练过程,但要利用更多的GPU或者机器,需要了解如何并行化地训练深度学习模型。


常用的并行化深度学习模型训练方式有两种:同步模式和异步模式。


下面将介绍这两种模式的工作方式及其优劣。


如下图,深度学习模型的训练是一个迭代的过程。

在每一轮迭代中,前向传播算法会根据当前参数的取值,计算出在一小部分训练数据上的预测值,然后反向传播算法,再根据损失函数计算参数的梯度并更新参数。


异步模式的训练流程图

在并行化地训练深度学习模型时,不同设备(GPU或CPU),可以在不同训练数据上,运行这个迭代的过程,而不同并行模式的区别在于,不同的参数更新方式。


异步模式的训练流程


从异步模式的训练流程图中可以看到,在每一轮迭代时,不同设备会读取参数最新的取值。
–但因为不同设备,读取参数取值的时间不一样,所以得到的值也有可能不一样。


根据当前参数的取值,和随机获取的一小部分训练数据,不同设备各自运行反向传播的过程,并独立地更新参数。
–可以认为异步模式,就是单机模式复制了多份,每一份使用不同的训练数据进行训练。


同步模式深度学习训练


在同步模式下,所有的设备同时读取参数的取值,并且当反向传播算法完成之后同步更新参数的取值。

单个设备不会单独对参数进行更新,而会等待所有设备都完成反向传播之后再统一更新参数。


分析


图中在每一轮迭代时,不同设备首先统一读取当前参数的取值,并随机获取一小部分数据。

然后在不同设备上运行反向传播过程得到在各自训练数据上参数的梯度。

当所有设备完成反向传播的计算之后,需要计算出不同设备上参数梯度的平均值,最后再根据平均值对参数进行更新。


3多GPU并行


下面将给出具体的TensorFlow代码,在一台机器的多个GPU上并行训练深度学习模型。

–因为一般来说一台机器上的多个GPU性能相似,所以在这种设置下,会更多地采用同步模式,训练深度学习模型。

下面将给出具体的代码,在多GPU上训练深度学习模型解决MNIST问题。

–样例代码将沿用mnist_inference.py程序,来完成神经网络的前向传播过程。
–新的神经网络训练程序是mnist_multi_ gpu_train.py


运行样例

运行MNIST样例程序时GPU的使用情况

–因为定义的神经网络规模比较小,所以在图中显示的GPU使用率不高。

–如果训练大型的神经网络模型,TensorFlow将会占满所有用到的GPU。


2017-02-04 21:09:29 JasonZhangOO 阅读数 8112
  • 深度学习的数据科学和自然语言处理教程

    该视频教程探索一些自然语言处理技术的最新进展、深度学习在自然语言处理技术领域的应用、实践和数据资源,以及使用英特尔的Nervanan Platform的企业自然语言处理的应用案例和使用英特尔® AI技术的NLP企业精华案例。

    546 人正在学习 去看看 CSDN讲师

去年下半年看了相关目标检测的论文,一些传统的算法,一些CVPR,TPAMI,ECCV,ICCV,,NIPS,比较前沿的进展,主要都是基于深度学习卷积神经网络方面的,包括RCNN,SPP-NET,Fast-RCNN,Faster-RCNN,以及YOLO,SSD,然后明天准备正式开始搞学术了,争取早点把论文发出来。

趁着放假回家的时间,做点前期准备工作,深度学习方面的框架有caffe,torch,mxnet,kerse,还有最近比较大热的TensorFlow,感觉tf会持续popular,所以准备搭建一个玩玩,但是相关比较新的目标检测框架都是首先基于caffe开发的,caffe对于图像方面的库比较多,稳定,所以搭建一个caffe也是必不可少,好像tf也是可以调用caffe框架模型的(没用过)。

装双系统之step one:http://blog.csdn.net/jasonzhangoo/article/details/54865974

装显卡驱动之step two(很多同学都是因为这步而放弃深度学习的):http://blog.csdn.net/jasonzhangoo/article/details/54866049

Ubuntu16.04下安装caffe和TensorFlow的cpu版本之step three:http://blog.csdn.net/jasonzhangoo/article/details/54866074

Win10下安装caffe的GPU版本之step four:http://blog.csdn.net/jasonzhangoo/article/details/54866120

windows安装配置faster-rcnn之step five:http://blog.csdn.net/jasonzhangoo/article/details/54866174

Ubuntu16.04下安装caffe和TensorFlow的cpu版本之step three:

当然如果你仅仅是初学者就只想快速感受一下caffe和TensorFlow的魅力,那么可以安装cpu版本跑几个demo看看。

1)依次安装依赖包

依次执行以下语句,安装依赖包:

sudo apt-get install libprotobuf-dev 

sudo apt-get install libleveldb-dev

sudo apt-get install libsnappy-dev 

sudo apt-get install libopencv-dev

sudo apt-get install libhdf5-serial-dev

sudo apt-get install protobuf-compiler

sudo apt-get install libgflags-dev

sudo apt-get install libgoogle-glog-dev

sudo apt-get install liblmdb-dev

sudo apt-get install libatlas-base-dev

 

2)下载caffe

可直接使用Git下载caffe,如果没有Git,请先安装Git,执行如下语句:

sudo apt-get install git

安装结束后下载caffe,执行以下命令:

git clone git://github.com/BVLC/caffe.git

 

3)编译caffe

1.进入caffe目录

cd caffe/

2.生成Makefile.config文件,这里是将caffe目录下自带的Makefile.config.example文件复制一份并更名为Makefile.config,命令如下:

cp Makefile.config.example Makefile.config

此时目录下就会有Makefile.config文件

3.修改Makefile.config文件中的配置

1)编辑Makefile.config文件

sudo gedit Makefile.config

2)去掉CPU_ONLY前面的#号

使得CPU_ONLY := 1

3)配置引用文件路径(主要是HDF5的路径问题)

原来的路径配置如下图:

修改为如下图:

新增的内容为(注意新增内容是空一格然后直接在后面添加):

/usr/include/hdf5/serial

/usr/lib/x86_64-linux-gnu/hdf5/serial

4)执行编译

sudo make all

执行之后:

sudo make test

执行之后:

sudo make runtest

执行之后:


显示1104个用例执行成功,结果PASSED!

注意:如果执行结果失败,则需要执行语句sudo make clean,然后解决掉问题重新编译

 

安装TensorFlow:

首先建议安装pip,这样安装tf会十分方便sudo apt-get install python-pip

#仅使用 CPU 的版本

$ pip installhttps://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

 

#开启 GPU 支持的版本 (安装该版本的前提是已经安装了 CUDA sdk)

$ pip installhttps://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-0.5.0-cp27-none-linux_x86_64.whl


安装Ubuntu下cpu版本可以参考:http://www.linuxdiyf.com/linux/26229.html


2019-01-23 20:30:36 LuffysMan 阅读数 992
  • 深度学习的数据科学和自然语言处理教程

    该视频教程探索一些自然语言处理技术的最新进展、深度学习在自然语言处理技术领域的应用、实践和数据资源,以及使用英特尔的Nervanan Platform的企业自然语言处理的应用案例和使用英特尔® AI技术的NLP企业精华案例。

    546 人正在学习 去看看 CSDN讲师

 luffy搭建深度学习环境可谓一波三折, 最后终于搭建成功了, 原来用cpu跑30分钟的代码, gpu上1分30秒就跑完了(感动哭).
 另外两篇博客可作为参考, 毕竟踩了许多坑:
深度学习之路–环境篇(使用docker搭建tensorflow_gpu开发环境)
深度学习之路–环境篇(TensorFlow_GPU+CUDA)

基本步骤

1 安装NVIDIA驱动

 luffy这里是在服务器上进行搭建环境的, 驱动已经安装好了, 但是安装驱动很关键, 务必要匹配自己的显卡型号和后面准备安装的cuda版本. 网上有很多教程, luffy就不赘述了(主要是自己也不太熟>_<).
在这里插入图片描述

2 安装anaconda3

由于luffy使用使用指令安装几次不成功, 所以采用下载sh文件手动安装的办法;

  1. 去官网下载anaconda3, 或者去清华开源软件镜像下载更快一点.
  2. 转到安装文件所在目录, 使用以下指令进行安装, 一路默认即可, 或者自己指定安装目录.
    $sh Anaconda3-2018.12-Linux-x86_64.sh

3 创建tensorflow-gpu + cuda + cudnn环境

接下来就是体现anaconda3的强大之处了, 一步到位

  1. 首先选定要安装那个版本的cuda, 具体参考Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
  2. 创建conda环境(anaconda可以创建任意环境, 每个环境里面可安装任意版本Python/tensorflow/cuda等, 就像一个个不同的虚拟机一样, 太方便了)
    $conda create -n tensorflow_gpu python=3.6 tensorflow=1.4.1
    以上指令可同时完成安装Python3.6/ tensorflow-gpu1.4.1/cuda8.0/cudnn7.1.3
    在这里插入图片描述
    以上就基本搭建完成了, 但是在实际运行代码时, 可能会遇到下面的小问题.

遇到的问题

  1. luffy安装完成后, 赶紧测试下, 用的是tensorflow官网Mnist手写数字识别问题的多层卷积神经网络模型, 但是在成功下载完数据集后提下下面的错误:
E tensorflow/stream_executor/cuda/cuda_dnn.cc:378] Loaded runtime CuDNN library: 7103 (compatibility version 7100) but source was compiled with 7005 (compatibility version 7000).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
2019-01-23 18:14:30.459465: F tensorflow/core/kernels/conv_ops.cc:667] Check failed: stream->parent()->GetConvolveAlgorithms( conv_parameters.ShouldIncludeWinogradNonfusedAlgo<T>(), &algorithms)
Aborted (core dumped)

原因: 大概意思是cudnn运行时环境版本为7103(自动安装的), 但是源的编译版本为7005(我也不明白什么是缘~, 是开发环境?), 二者不兼容.
解决: 把cudnn7103降级为7005

#可先搜索cudnn有哪些可用包
$conda search cudnn
#然后安装目标包
conda install cudnn=7.0.5
  1. 有些同学可能会问, 为什么安装的是tensorflow1.4.1-gpu呢?
    因为anaconda3的包里面只有1.4.1啊因为anaconda3的包里面只有1.4.1啊
    在这里插入图片描述
2018-10-11 14:11:05 mengjiexu_cn 阅读数 2556
  • 深度学习的数据科学和自然语言处理教程

    该视频教程探索一些自然语言处理技术的最新进展、深度学习在自然语言处理技术领域的应用、实践和数据资源,以及使用英特尔的Nervanan Platform的企业自然语言处理的应用案例和使用英特尔® AI技术的NLP企业精华案例。

    546 人正在学习 去看看 CSDN讲师

最近正鼓捣树莓派,想在树莓派上跑深度学习,有些坑与技巧,在此记录一下:

  1. 树莓派的python的pip源比较慢,没找到国内的用于树莓派的镜像,命令行加快网速的工具proxychains;
  2. darknet在CPU上是单线程的,很坑,暂时的解决方法是使用opencv调用darknet的模型;
  3. 使用keras、tf会出现bus error,内存对齐错误,暂无解决办法;
  4. 使用motion加普通摄像头就可以做一个远程监控系统;
  5. 使用tiny-yolov3可以跑到4s/帧的速度
  6. darknet在CPU上是单线程的,很坑,暂时的解决方法是使用opencv调用darknet的模型;

以后遇到的问题,陆续在这里总结。

2017-11-26 17:36:42 qq_33378523 阅读数 198
  • 深度学习的数据科学和自然语言处理教程

    该视频教程探索一些自然语言处理技术的最新进展、深度学习在自然语言处理技术领域的应用、实践和数据资源,以及使用英特尔的Nervanan Platform的企业自然语言处理的应用案例和使用英特尔® AI技术的NLP企业精华案例。

    546 人正在学习 去看看 CSDN讲师

整合一下深度学习caffe基本环境的配置(CPU+GPU)

之前国创项目做的深度学习关于衣物识别的内容,当时也算初入dl坑吧。。不过主要是以应用为主,后期进实验室才真正去看paper做实验等等。。(实验室框环境都配好的,从老的faster-RCNN到SSD、resnet等等都有学长给弄好的,自己需要跑实验带着数据集即可)

然而自己在新校区配环境也是艰难得很,不过后来问问基本都是这样过来的,格十几次系统不算大事。
本blog主要记录分享我们团队大二配环境的总结。

队伍中hhy同学提前有写blog的习惯,主要以他的博客转载为主。


caffe(CPU only)部分

http://blog.csdn.net/hhy_csdn/article/details/61615958

写得很好,摘取他的首段

曾参考了很多CSDN前辈的教程,也按照《深度学习——21天实战caffe》这本书来配过,但是都不成功。无疑,这些博客讲述的都是成功的例子,但是由于每台电脑的配置、环境都不尽相同,所以仅凭一篇教程来配置caffe是欠妥当的。建议后来的朋友多多参考前人的足迹,看看每篇教程有什么不同,哪些依赖包是教程没有提及但自己电脑又确实没有的。
  caffe依赖多且复杂,历来被人诟病,但是配置编译完成后caffe所带来的欣喜与便捷也足以回报先前的煞费苦心。相信自己的能力也会随着这个过程逐步提高,所以希望未来看到这篇博客的你不要灰心丧气、半途而废!
  所幸我还是找到了一篇适合于我的电脑的caffe 配置教程。当然这不可能适合于所有的电脑,所以千万不要迷信教程,多看多想才是正道。

我们团队的做法其实比较死,几个人都去配caffe、都打开十几个配caffe的blog,对比,选择通法。若出问题再去百度。

下面再来cifar10的小例程

http://blog.csdn.net/hhy_csdn/article/details/61463956

毫无疑问,在当时,我的电脑配置成功,完成了minist、cifar10后,非常激动和喜悦。

基本上完成CPU only的caffe配置后,并且在不断摸索中,对linux系统和基本依赖包就已经很熟了。之后开始真正做项目需要用cuda,GPU的配置其实也很容易上手。

另外我们发现,其实与其去看那么多的博客,不如自己去读英文的官方文件,或者github下下来后的readme文件,那才是最权威的第一手资料

下为cuda官方文件的翻译

NVIDIA CUDA Installation Guide for Linux

Linux 系统下的NVIDIA CUDA 安装指南

http://blog.csdn.net/hhy_csdn/article/details/64440406

到了这里基本就结束了

还有一些小知识。

Ubuntu vim command
http://blog.csdn.net/hhy_csdn/article/details/61924537

ubuntu chmod命令
http://blog.csdn.net/hhy_csdn/article/details/62047126

批量改文件名
http://blog.csdn.net/hhy_csdn/article/details/62428947

深度学习装机指南

阅读数 472

没有更多推荐了,返回首页