caffe的cancat层

我在训练Goolenet inception-v3时候出现了concat错误,因此写下concat层的一些知识点,以供读者跳坑

concat层在inception-v3网络中存在非常明显,之所以需要concat层是由于在之前的卷积池化层进行了卷积核大小的变化

卷积核大小变化的出发点:1.减小sobel算子维度,从而降低整个卷积层的参数,如,将5*5的卷积转化为2个3*3的卷积,其参数多少就会由25个转化为9+9=18个,在卷积层的卷积核转化时

还会有这种操作:将n*n的卷积转化为1*n和n*1并列的两个卷积核,其结果减少了n*n-2n个参数数量

在此之后会出现不同的featuremap将输出的featuremap连接起来即是cancat层做的工作

在此,引入cancat层的设置规则:

在caffe的数据中一般出现4个维度[num,channel,hight,weight]

默认的concat拼接axis值为1(如果在参数axis未设置)即在channel维度进行拼接

原文地址:https://www.cnblogs.com/laowangxieboke/p/10394887.html

时间: 2024-10-08 23:17:36

caffe的cancat层的相关文章

caffe中HingeLossLayer层原理以及源码分析

输入: bottom[0]: NxKx1x1维,N为样本个数,K为类别数.是预测值. bottom[1]: Nx1x1x1维, N为样本个数,类别为K时,每个元素的取值范围为[0,1,2,-,K-1].是groundTruth. 输出: top[0]: 1x1x1x1维, 求得是hingeLoss. 关于HingeLoss: p: 范数,默认是L1范数,可以在配置中设置为L1或者L2范数. :指示函数,如果第n个样本的真实label为k,则为,否则为-1. tnk: bottom[0]中第n个样

caffe 的layer层组织结构

caffe的layer层是靠INSTANTIATE_CLASS和REGISTER_LAYER_CLASS来进行对各个层类进行处理的.每一个layer都是继承基类Layer的,其中BaseDataLayer是输入数据的基类,从这个类继承的主要是: 这个图可以很好的看到这些layer的继承关系,整个layer层的结构非常清晰,使用抽象工厂的方式构建整个layer层,然后刚才的宏将layer注册成抽象的服务类,然后再使用的时候再向服务器提供者申请调用各个类,这样就可以把proto文件作为个各类的配置文

Caffe提取任意层特征并进行可视化

原图 conv1层可视化结果 (96个filter得到的结果) 数据模型与准备 安装好Caffe后,在examples/images文件夹下有两张示例图像,本文即在这两张图像上,用Caffe提供的预训练模型,进行特征提取,并进行可视化. 1. 进入caffe根目录,创建临时文件夹,用于存放所需要的临时文件 mkdir examples/_temp 2. 根据examples/images文件夹中的图片,创建包含图像列表的txt文件,并添加标签(0) find `pwd`/examples/ima

TensorFlow与caffe中卷积层feature map大小计算

刚刚接触Tensorflow,由于是做图像处理,因此接触比较多的还是卷及神经网络,其中会涉及到在经过卷积层或者pooling层之后,图像Feature map的大小计算,之前一直以为是与caffe相同的,后来查阅了资料发现并不相同,将计算公式贴在这里,以便查阅: caffe中: TF中: 参考: http://blog.csdn.net/lujiandong1/article/details/53728053 http://www.cnblogs.com/denny402/p/5071126.h

如何向caffe中添加层

修改caffe\src\caffe\proto\caffe.proto 在最后添加centerloss层的参数信息 message CenterLossParameter { optional uint32 num_output = 1; // The number of outputs for the layer optional FillerParameter center_filler = 2; // The filler for the centers // The first axis

caffe 最新的层都有哪些呢?

caffe不断地更新,最近又加入了prelu这种很好的功能~详见 http://research.microsoft.com/en-us/um/people/kahe/ http://arxiv.org/abs/1502.01852 更新之后每层的设置从layers变为layer,现有的层有 AbsVal,Accuracy,ArgMax,BNLL,Concat,ContrastiveLoss,Convolution,Data,Deconvolution,Dropout,DummyData,Elt

[caffe]网络各层参数设置

数据层 数据层是模型最底层,提供提供数据输入和数据从Blobs转换成别的格式进行保存输出,通常数据预处理(减去均值,放大缩小,裁剪和镜像等)也在这一层设置参数实现. 参数设置: name: 名称 type: 类型 Data: 从LMDB读取数据和标签, 转换(http://deepdish.io/2015/04/28/creating-lmdb-in-python/) 可以使用convert_imageset转换 ImageData: 直接读取图片数据 .... top: 输出数据(和下一层的b

纯C++版500VIP源码下载的Faster R-CNN(通过caffe自定义RPN层实现)

这里500VIP源码下载 dsluntan.com 介绍的是通过添加自定义层(RPN层)代替python层,实现c++版的Faster R-CNN,因为去掉python了,所以部署时不会因为牵扯到python库等其它的莫名其妙的错误,使用起来就跟单纯的caffe一样,更简单方便. 核心代码,借鉴的是这篇博客,这里的话,我们不扣具体的代码细节(比如rpn层是怎么产出候选框啊,非极大值抑制是具体怎么实现的等等),有兴趣的可以自己查下资料,所以主要是走一个步骤,从而完成c++版Faster R-CNN

caffe的卷积层的乘积运算的优化

https://hal.inria.fr/file/index/docid/112631/filename/p1038112283956.pdf caffe的卷积计算的优化来自这篇paper,实际上就是将卷积核矩阵和feature map矩阵(或者图像矩阵)转换为大的矩阵 jiayangqing自己也分析了为何要做这种转换,如下图 具体的优化过程如下图: 在caffe中是通过conv_im2col_cpu函数来实现,conv_im2col_cpu(/include/caffe/vision_la