决定将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的输入的更多相关文章

  1. caffe卷积输入通道如何到输出通道

    今天一个同学问 卷积过程好像是对 一个通道的图像进行卷积, 比如10个卷积核,得到10个feature map, 那么输入图像为RGB三个通道呢,输出就为 30个feature map 吗, 答案肯定 ...

  2. c++ 和 matlab 下的caffe模型输入差异

    在向一个caffe模型传递输入数据的时候,要注意以下两点: 1. opencv中Mat数据在内存中的存放方式是按行存储,matlab中图像在内存中的存放方式是按列存储. 2. opencv中Mat数据 ...

  3. caffe添加自己的数据输入层

    整体思路: 阅读caffe数据输入层各个类之间的继承关系,确定当前类需要继承的父类以及所需参数的设置. 编写zzq_data.cpp 在layer_factory.cpp中完成注册: 在caffe.p ...

  4. Caffe学习笔记(三):Caffe数据是如何输入和输出的?

    Caffe学习笔记(三):Caffe数据是如何输入和输出的? Caffe中的数据流以Blobs进行传输,在<Caffe学习笔记(一):Caffe架构及其模型解析>中已经对Blobs进行了简 ...

  5. Caffe训练好的网络对图像分类

    对于训练好的Caffe 网络 输入:彩色or灰度图片 做minist 下手写识别分类,不能直接使用,需去除均值图像,同时将输入图像像素归一化到0-1直接即可. #include <caffe/c ...

  6. (原)caffe中fine tuning及使用snapshot时的sh命令

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5946041.html 参考网址: http://caffe.berkeleyvision.org/tu ...

  7. 总结一下用caffe跑图片数据的研究流程

    近期在用caffe玩一些数据集,这些数据集是从淘宝爬下来的图片.主要是想研究一下对女性衣服的分类. 以下是一些详细的操作流程,这里总结一下. 1 爬取数据.写爬虫从淘宝爬取自己须要的数据. 2 数据预 ...

  8. windows下用c++调用caffe做前向

    参考博客: https://blog.csdn.net/muyouhang/article/details/54773265 https://blog.csdn.net/hhh0209/article ...

  9. TensorRT加速 ——NVIDIA终端AI芯片加速用,可以直接利用caffe或TensorFlow生成的模型来predict(inference)

    官网:https://developer.nvidia.com/tensorrt 作用:NVIDIA TensorRT™ is a high-performance deep learning inf ...

随机推荐

  1. Android中的APinner2

    Spinner提供了从一个数据集合中快速选择一项值的办法.默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner ...

  2. BP人工神经网络-反向传播法

    0 网络计算结果 B(m)=f( ∑n( W(n,m)*X(n) ) + Θ(m) ) %中间层的输出 Y(k)=f( ∑m( V(m,k)*B(m) ) + ф(k) ) %输出层的输出 1 计算误 ...

  3. [转]使用jquery dataTable

    本文转自:http://blog.csdn.net/llhwin2010/article/details/8663753 jQuery 的插件 dataTables 是一个优秀的表格插件,提供了针对表 ...

  4. Kudu和HBase定位的区别

    不多说,直接上干货! Kudu和HBase定位的区别 Kudu 的定位是提供 “ast analytics on fast data” ,也就是在快速更新的数据上进行快速的查询.它定位 OLAP 和少 ...

  5. pat04-树5. File Transfer (25)

    04-树5. File Transfer (25) 时间限制 150 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue We have ...

  6. hash冲突解决和javahash冲突解决

    其实就是四种方法的演变 1.开放定址法 具体就是把数据的标志等的对长度取模 有三种不同的取模 线性探测再散列 给数据的标志加增量,取模 平方探测再散列 给数据的标志平方,取模 随机探测再散列 把数据的 ...

  7. Actor的一生

    Actor应该怎么去形容它呢?它是一段代码扮演的角色.它拥有自己的状态机,能根据外界的消息进行适当的反应.他有记忆能力,可以记住来自外界的多个消息并依次进行反应.Actor就像一个小的生命体,有自己的 ...

  8. npm package.json字段全解

    name 在package.json中最重要的就是name和version字段.他们都是必须的,如果没有就无法install.name和version一起组成的标识在假设中是唯一的.改变包应该同时改变 ...

  9. 关于修改test9ui布局的一些小笔记

    今早,上IT修真园里,看到师兄大娃很负责任的将我任务里的项目的排版,3,6,7的列了出来. 谢谢师兄,那么负责任的照看师弟. 言归正传,我一开始,直接按照师兄的指示,选择性的优先修改底部.效果也达到了 ...

  10. Eclipse Infrastructure

    Everything is plug-ins running on or loaded by plug-ins loader called by a small kernal which is an ...