CNN卷积后输出size的计算

来个详细版的如下:

source

来个简版的如下:

source

 

padding =“SAME”的情况:

这里插一句帮助理解:自动补全的话,考虑步长为1,每一卷积从第一个维度开始一步一步移动,直到最后一个维度,那么输出肯定是和原来的维度一样,如果步长不是1比如为2 就要向上取整。比如7*7的图像采用3*3大小的卷积核进行卷积操作,padding = “SAME”的情况下就是[7/3] = 4 , 经评论区更正为[7/2] = 4,其中[]表示向上取整,最后输出为4*4大小的feature map

没图说个基:

 

source
经评论区更正下面的padding = "VALID"而不是"value"

① padding = "valueVALID", stride = 4, (227 - 11 + 2*0)/ 4 + 1 = 55

② padding = "valueVALID", stride = 2, (55 - 3 + 2*0)/  2 + 1 = 27

③ padding = "SAME", stride = 1, 27 / 1 = 27

④ padding = "valueVALID",stride = 2, (27 - 3 + 2*0) / 2 + 1 = 13

来个例子:

 

input = tf.Variable(tf.random_normal([64,5,5,3]))
filter = tf.Variable(tf.random_normal([3,3,3,16]))

op_1 = tf.nn.conv2d(input,filter,strides = [1,1,1,1],padding = "SAME")
op_2 = tf.nn.conv2d(input,filter,strides = [1,2,2,1],padding = "SAME")


init = tf.global_variables_initializer()

sess = tf.InteractiveSession()

sess.run(init)

print(np.shape(sess.run(op_1)))
print(np.shape(sess.run(op_2)))

output:

(64, 5, 5, 16)

(64, 3, 3, 16)

总结:padding = “VALID”,N = [(W-F+2P)/S]+1,这里表示的是向下取整再加1

           padding = “SAME”,N = [W/S],这里表示向上取整

 

 

 

 

 

  • 14
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的搬砖机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值