caffe中概念笔记



如果input尺寸是3*224*224,下一层是conv1,kernel_size是7,pad是3,stride是2,num_output是64,

则,先把输入加上pad,即输入变为3*(224+3*2)*(224+3*2)=3*230*230,

卷积后的某一边尺寸为:(230-7)/2+1=111+1=112,

所以conv1的输出是64*112*112


关于参数个数计算:按照以上所述的两层,

卷积核个数是64,卷积核大小是7*7,input输入是3通道,

那么每个卷积核对应7*7*3个参数,一个卷积核在一幅图上移动卷积时,参数共享;但是在不同通道的图片上的卷积参数是不一样的,

所以最后可以算出,64个卷积核对应64*7*7*3个参数


关于feature map(特征图)生成:

一个卷积核的输出,是等于这个卷积核在所有通道图片上卷积得到的图相叠加,

比如按照以上所述的两层,conv1的一个卷积核现在3个通道的图片上进行卷积得到3张卷积结果图,

然后把这三张结果图相叠加(可以看成是3张图片对应位置像素值相加),最后得到这个卷积核的feature map(即每个卷积核输出一张feature map),

卷积核个数是64,所以最后输出的是64张大小为112*112的feature map(特征图)


pad: 扩充边缘,默认为0,不扩充。 扩充的时候是左右、上下对称的,如果pad设置为2,则四个边缘都扩充2个像素,即宽度和高度都扩充了4个像素,可以通过pad_h和pad_w来分别设定。pad操作是在卷积操作之前的,即对输入图片先扩充长度,再卷积。



各层使用作用及使用:
参考:http://caffe.berkeleyvision.org/tutorial/layers.html,这是伯克利官方的tutorial
http://www.myexception.cn/other/1828071.html
http://www.cnblogs.com/yinheyi/p/6070213.html
http://blog.csdn.net/linzertling/article/details/44648737


layers {
  name: "concat"
  bottom: "in1"
  bottom: "in2"
  top: "out"
  type: CONCAT
  concat_param {
    concat_dim: 1
  }
}
concat层,用来连接多输入,只输出一个n*c*h*w

可选参数:
concat_dim [default 1]:0代表链接num,1代表链接channels 
通过全连接层后的大小变化:
输入:从1到K的每一个blob的大小n_i * c_i * h * w
输出:
如果concat_dim = 0: (n_1 + n_2 + ... + n_K) *c_1 * h * w,需要保证所有输入的c_i 相同。
如果concat_dim = 1: n_1 * (c_1 + c_2 + ... +c_K) * h * w,需要保证所有输入的n_i 相同。
 
通过Concatenation层,可以把多个的blobs链接成一个blob

layer {
  name: "slicer_label"
  type: "Slice"
  bottom: "label"
  ## Example of label with a shape N x 3 x 1 x 1
  top: "label1"
  top: "label2"
  top: "label3"
  slice_param {
    axis: 1
    slice_point: 1
    slice_point: 2
  }
}
slice层,用来切割一个输入,多输出
slice_point索引是从0开始的,所以以上被切分为:
N*1*1*1,
N*1*1*1,
N*1*1*1,
axis:1表示在channel上切割;0表示在num上切割

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值