Pytorch-学习记录 卷积操作——Tensor.size()

本文档记录了在Pytorch中使用Conv2d进行卷积操作时,如何计算输入经过卷积层后的尺寸变化。重点讨论了kernel_size、padding和stride的影响,并举例说明了多层卷积和pooling后的尺寸计算。特别指出,Resnet和Inception结构中常见kernel_size=3, stride=1, padding=1的设置,它们能保持特征图尺寸不变。" 86665401,8356210,使用DFS计算树中节点的深度,"['图论', '算法', 'C++', '深度优先遍历', '数据结构']
摘要由CSDN通过智能技术生成

设计网络结构、看网络结构源码时时常需要计算输入在结构中经过卷积层、pooling层后尺寸大小,特此记录。


pytorch中二维卷积层接口为 Conv2d() ,参数详情不多赘述,详情请参阅官方文档。我在此主要说明卷积层对输入计算之后size的变化情况。

例如,


卷积层的in_channels首先要与input的channels相对应,具体到上例,就是黑色和蓝色框所对应的部分。out_channels自行设定,表示输出卷积核个数。kernel_size为卷积核大小,stride为卷积核在输入上的窗口移动步长,当输入stride参数为int时,表示卷积核移动在横向与纵向都是相同步长,若stride=(x,y),表示在横轴与纵轴以不同步长滑动。   padding简单理解为对输入特征图四周的填充。kernel_size、padding、stride会影响输出特征图的尺寸。

从上图可知,输入的 batchsize=64 在网络结构前向传递过程中不改变大小。同时,在kernel_size=3,stride=1,padding=1的前提下,卷积不改变输入图像的尺寸。


特征图尺寸计算方式:

feature-map height  :   {(input_height - kernel_size + 2*padding) / stride[0] }+1  (stride[0]表示横向移动步长])

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值