caffe的输入

决定将caffe分为几个部分进行总结,首先是第一部分,输入数据以及输入层。

首先从输入数据对BP的影响开始介绍。

sgd的随机性

由于是sgd,因此样本一定要shuffle。BP中说到,样本选择遵循俩个原则:1.shuffle,让样本囊括所有类,2. 使得误差大的样本多出现,而误差小的少出现。

首先说一说第一个:

随机性,这个在caffe中都是怎么体现的呢?先说说caffe中的输入格式吧,leveldb, image原始数据,hdf5,lmdb。其中对应的类有data_layer, image_data_layer,windows_data_layer,hdf5_data_layer。使用leveldb作为输入的层,在打leveldb时已经shuffle过了,一定要选择要随机打leveldb,否则模型无法训练的。而用image原始数据作为输入的层,在读入数据列表后,image_Data_layer会先进行整体shuffle,然后再进行训练。而window_data_layer,首先读取数据列表,然后在训练过程中,读取数据时,每次读的数据时随机的。而hdf5和lmdb,我没有打过hdf5,lmdb,等我调查后再补充,从代码来看,应该在打hdf5时就要随机的。

第二点呢,这个其实在caffe里我没有看到相关的应用,我想可能主要是因为caffe主要是针对大数据训练的(咳咳,现在说到大数据我就别扭,连什么什么会都开始什么都冠名“大”了,太俗了)。在这种情况下,想要记录每一个训练样本的误差,是基本上无法实现的,而且当数据量大了,也不需要去在乎这个了。但是,这个训练策略是值得一提的,在SVM的训练中,用到的是hard negative minning,就是这个原理,或者差不多吧。在SVM的训练过程中,每次都是选择那些分错的从新训练,而分对的不需要再进行。具体理论保证,我好想又忘记了……

 

本小题未完待续,最近系统看关于fp,bp的文章,efficient bp我第三次看,还是白板一样,全是新知识扑面而来。

 

转载于:https://www.cnblogs.com/jianyingzhou/p/4092680.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值