开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 19221|回复: 36
收起左侧

[CC教程] 第二课,深度学习相关基本概念

[复制链接]
发表于 2017-6-20 16:10:29 | 显示全部楼层 |阅读模式   江苏省苏州市


视频地址:
https://share.weiyun.com/14885e04050da9f53f7670532acb782c

http://pan.baidu.com/s/1skDzV5N
http://cloud.video.taobao.com/play/u/144304055/p/1/e/6/t/1/50010974167.mp4

ppt地址:
http://www.zifuture.com/fs/10.tutorial/2.jibenjieshao.pptx
大纲总览
深度学习下的验证码识别教程 点我查看


1.深度学习

深度学习Deep Learning,简称DL,又称DNN,即深度神经网络Deep Natural Networks。
在此之前有BP神经网络,即Back Propgation,反向传播神经网络。
通常我们会认为,BP或者其他隐层少的网络属于浅层神经网络,而隐层很多的网络称之为DNN,这里的多是没有具体定义的,如图所示即是。

而DNN又是个比较宽泛的词,DNN里面又包括有CNN卷积神经网络、RNN循环神经网络、LSTM长短期记忆网络、GANs对抗网络等几大类型,本文我们默认DL指CNN即可,相关意义可以查询百度。

图片1.png      
浅层神经网络

图片2.png
深层神经网络


图片3.png
CNN


2.GPU
GPU:图形处理单元,即显卡。以前GPU多为了加速显示帧率等,最近被用在超级计算上,以支持大量密集运算的需求,比如DL的训练过程就是。而显卡又分为三类,即Intel出的集成显卡、AMD系列、NVIDIA系列,被简称集显、A卡、N卡对于DL的GPU支持,必须是N卡,而且还要能够支持CUDA,因为旧版的显卡是不能支持CUDA的,可以下载GPU-Z查看型号和支持情况

显存:显卡的内存,由于DL的计算同时也需要消耗很大的显存空间,所以这个指标也影响着DL的训练和使用。GPU-Z里面查看的Memory Size即是显存大小,而Sensors里面的GPU Load是显卡使用率

对于使用CPU训练,会特别慢,使用GPU训练一般会比CPU快10-30倍甚至更多,所以使用GPU训练是很必要的事情。但是目前很长时间内,GPU的训练一直都是困扰很多人的问题,因为坑太多了,这里我们就详细讲讲关于GPU的那点事~

CUDA:NVIDIA出的一个GPU加速开发工具包,用来做GPU加速开发的支持,CUDA有版本的区分,所以CC库的编译和使用也就依赖着编译时候的版本,目前CC库提供有CUDA8.0、CUDA7.5的编译版本,那么对于使用GPU的你而言必须下载安装对应的CUDA版本和对应的CC版本才行。记得安装完CUDA后,在环境变量里面加入CUDA的目录,否则会提示找不到dll。

CUDA下载地址:

CUDA是不支持Win32的,也就是说,CC框架也不能支持Win32下的GPU相关操作

3.Protocol buffer
称为protobuf,简称PB,是由google开发的一套数据交互的协议栈库,他是一个库,也提供一种协议语法,语法结构跟JSON很相似。你可以使用任何语言解析编码为protobuf格式的协议数据或者文件,我们后期训练使用的模型和网络定义,全部是以protobuf的格式存储的。

图片4.png
协议约定文件

图片5.png
协议数据文件

caffe主要采用google protobuf格式描述网络配置文件,定义DL的各个层参数、训练时候的超参数和二进制的模型权重,所以caffe的训练是不需要写任何代码来实现的,只有调用caffe模型实现任务的时候需要写代码,主要完成训练任务的是caffe.exe程序

相关资料:
http://blog.csdn.net/menuconfig/article/details/12837173

4.LMDB
lmdb是openLDAP项目开发的嵌入式(作为一个库嵌入到宿主程序)存储引擎。其主要特性有:
瓜拉呱啦~。。。,参考:http://www.jianshu.com/p/yzFf8j
在CC中,lmdb是为了加速训练的需要,所以把图片文件通过convert_imageset.exe程序存放到一个lmdb数据库中,然后caffe.exe则读取该lmdb的数据作为训练数据,lmdb一般是在一个文件夹里面,有data.mdb和lock.mdb,如下图:
图片6.png

5.数据集
这里我们指训练时候指定的数据集,有train数据集、val数据集、test数据集
通常我们会把train和val数据集制作为lmdb数据库,即:
图片7.png
而test数据集,我们只需要保持label-test.txt就好了

这三个数据集的意义是:
train:用来训练的数据集,推荐占全部样本比重95%
val:用来训练时候做验证的数据集,推荐占全部样本比重4%
test:用来自己写代码测试训练结果模型的数据集,推荐占比1%

这三个数据集是完全不重叠的,就是说,他们之间是没有重复的图片文件。

6.LOSS
损失、误差
神经网络的训练,是通过正向传播求loss,然后回传loss调整权重完成的。loss就是当前训练进展的主要指标,当loss足够小的时候,表示网络基本训练完成。至于多小,取决于当前任务,一般是0.01以下

7.学习率
lr
learningrate,学习率
神经网络的训练,是通过正向传播求loss,然后回传loss调整权重完成的。这时候调整权重是根据loss计算然后乘以学习率,就是最终的调整量,所以学习率是控制调整强度的值,也是学习力度的控制,一般我们会给0.01、0.001等值去训练。学习率控制不好,会导致训练过程失败(即loss不下降或者精度不能达标)
图片9.png

8.过拟合、欠拟合
图片10.jpg
欠拟合                      完美                        过拟合

欠拟合:学习的还不够,表达能力不够好
过拟合:学习过头了,等于把样本全背下来记下来了,而没有学习应该学的知识,对新样本而言,泛化能力不好。泛化能力即扩展能力,在新样本上表现的效果的能力
中间这个:就是我们想要的数据表达模型被正确学习到的时候,这时候模型泛化能力最好,效果最好

9.迭代
指数据传入网络后进行一次前向运算的过程,称为一次迭代

10.Batch
批次
训练时候,通常会一次一批样本去训练他,综合起来调整loss。这时候迭代一次是用了一批图片

11.数据集转换
图片11.png


12.训练
图片12.png

13.迁移学习
finetune
又叫模型微调,利用已经训练好的模型,初始化一个新的训练任务。就是说,新任务根据这个旧模型开始学习,这样的学习就有一个很好的起点,就会很快得到好的结果。比如我们会在大数据集上训练一个模型(ImageNet数据集),然后新的小任务数据集上识别的时候,基于该模型去训练,将会很容易得到好的效果。若不这么做,我们新的训练任务通常需要非常大量的样本才能得到好效果。所以这个技术非常有用和关键。称做微调,是因为做迁移学习的时候学习率会比从头训练的学习率要低,表示根据已有模型以低的学习率来微调模型权重,训练新的任务。形象的说,一个模型因为见过很复杂的数据,那么他能够通过微微的调整来适应小的新数据,而且做到很好的效果。

主要的就是--weights这个参数指定的模型

14.暂停恢复
resume
训练过程允许中断然后调整参数,然后使用保存的快照继续训练,就是所谓的resume
主要是--snapshot参数指定的solverstate快照实现继续训练

15.使用模型
图片13.png







点评

感谢分享,很给力!~   广东省惠州市  发表于 2017-6-21 13:26

评分

参与人数 6好评 +5 精币 +36 收起 理由
j7ok7f + 1 这么厉害!必须给个红包鼓励下~
luckfish45 + 1 + 2 很好很强悍,坚持下去哦~
小8style + 1 + 2 赶来支持小哥
冯古屋 + 1 + 1 除了点赞,啥都不会
Cand + 1 + 20 感谢分享,很给力!~
单身汪 + 1 + 10 终于等到你,我的第二课

查看全部评分

本帖被以下淘专辑推荐:

  • · 鱼木|主题: 1560, 订阅: 152
发表于 2022-6-26 08:17:26 | 显示全部楼层   山西省太原市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2020-7-20 17:31:36 | 显示全部楼层   辽宁省沈阳市
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2019-12-4 09:22:16 | 显示全部楼层   辽宁省沈阳市
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)
发表于 2019-10-20 18:25:57 | 显示全部楼层   辽宁省沈阳市
支持你哦啊
回复 支持 反对

使用道具 举报

结帖率:33% (1/3)
发表于 2019-9-1 17:55:48 | 显示全部楼层   江苏省苏州市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 1 天

发表于 2018-9-7 01:56:09 | 显示全部楼层   山西省运城市
挺好的 不错不错 支持了
回复 支持 反对

使用道具 举报

结帖率:73% (8/11)

签到天数: 22 天

发表于 2018-7-19 17:40:48 | 显示全部楼层   四川省成都市
挺好的 不错不错 支持了
回复 支持 反对

使用道具 举报

结帖率:100% (23/23)

签到天数: 5 天

发表于 2018-4-15 02:09:07 | 显示全部楼层   安徽省淮北市
新技能已get√
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)
发表于 2018-2-20 23:09:59 | 显示全部楼层   四川省成都市
太引人入胜。科普大大~!
回复 支持 反对

使用道具 举报

发表于 2018-1-31 11:53:00 | 显示全部楼层   江西省南昌市
        很好很强悍,坚持下去哦~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表