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我第三次看,还是白板一样,全是新知识扑面而来。
caffe的输入的更多相关文章
- caffe卷积输入通道如何到输出通道
今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定 ...
- c++ 和 matlab 下的caffe模型输入差异
在向一个caffe模型传递输入数据的时候,要注意以下两点: 1. opencv中Mat数据在内存中的存放方式是按行存储,matlab中图像在内存中的存放方式是按列存储. 2. opencv中Mat数据 ...
- caffe添加自己的数据输入层
整体思路: 阅读caffe数据输入层各个类之间的继承关系,确定当前类需要继承的父类以及所需参数的设置. 编写zzq_data.cpp 在layer_factory.cpp中完成注册: 在caffe.p ...
- Caffe学习笔记(三):Caffe数据是如何输入和输出的?
Caffe学习笔记(三):Caffe数据是如何输入和输出的? Caffe中的数据流以Blobs进行传输,在<Caffe学习笔记(一):Caffe架构及其模型解析>中已经对Blobs进行了简 ...
- Caffe训练好的网络对图像分类
对于训练好的Caffe 网络 输入:彩色or灰度图片 做minist 下手写识别分类,不能直接使用,需去除均值图像,同时将输入图像像素归一化到0-1直接即可. #include <caffe/c ...
- (原)caffe中fine tuning及使用snapshot时的sh命令
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5946041.html 参考网址: http://caffe.berkeleyvision.org/tu ...
- 总结一下用caffe跑图片数据的研究流程
近期在用caffe玩一些数据集,这些数据集是从淘宝爬下来的图片.主要是想研究一下对女性衣服的分类. 以下是一些详细的操作流程,这里总结一下. 1 爬取数据.写爬虫从淘宝爬取自己须要的数据. 2 数据预 ...
- windows下用c++调用caffe做前向
参考博客: https://blog.csdn.net/muyouhang/article/details/54773265 https://blog.csdn.net/hhh0209/article ...
- TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)
官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inf ...
随机推荐
- Java基础02-变量
1.为什么要使用变量? 变量就是用来记忆数据的,它是一个记忆系统 2.什么是变量? 变量就是一个容器,用来装数据的,变量是放在内存里的. 比如:内存是酒店,变量名就是房间名,变量值就是住进房间的人 3 ...
- 性能测试工具LoadRunner14-LR之Controller 简介
当虚拟用户开发完成之后,使用Controller将这个执行脚本的用户从单用户转化为多用户,从而模拟大量用户操作,进而形成负载.(多用户单循环,多用户多循环)我们需要对负载模拟的方式和特征进行配置. 场 ...
- 性能测试工具LoadRunner10-LR之Virtual User Generator 错误处理函数
VuGen提供了错误处理函数lr_continue_on_error,用来在脚本中实时修改Vuser的出错设置.lr_continue_on_error函数语法结构如下: void lr_contin ...
- JavaScript运算符优先级——"++,--,&&,||“
上篇文章比较了"?,="三者的优先级:"?">"=">"," 今天继续学习"++,--,& ...
- Apache-ant安装以及环境变量配置、验证
(一)安装 ant 下载地址: http://ant.apache.org/ 根据自己电脑下载对应版本 下载完成以后,可自行解压到自己常用的盘中,但是要记住解压到哪里了,以便后续的环境变量配置 ...
- 实现多ComboBox复杂查询 使用ComboBoxDisplay Value属性
首先创建一个类 class ComboBoxItem { public string Text { get; set; } public object Value { get; set; } //这个 ...
- app启动黑屏
由于在手机上多次删除应用,导致加载app时加载缓存图片缺失,进行如下操作: 删除Xcode DerivedData目录释放空间: 1.首先切换到 Finder 程序,打开“前往”菜单. 2.然后按住 ...
- css 两大特性:继承性和层叠性
css 有两大特性: 继承性和层叠性, 继承性 面向对象语言都会存在继承的概念,在面向对象的语言中,继承的特点:继承了父类的属性和方法.那么我们现在主要研究css,css中没有方法,所以我们仅仅继承属 ...
- 服务器返回的14种常见HTTP状态码
当我们从客户端向服务器发送请求时 服务器向我们返回状态码 状态码就是告诉我们服务器响应的状态 通过它,我们就可以知道当前请求是成功了还是出现了什么问题 状态码是由3位数字和原因短语组成的(比如最常见的 ...
- Java对象转换成Json字符串是无法获得对应字段名
问题: 代码中已经标注 @JSONField(name = "attrs") private String abc; public String getA() { return a ...