【转载】卷积核的步长

http://blog.youkuaiyun.com/meadl/article/details/68927227
卷积层的维度计算

假设卷积层的输入大小xx为55,卷积核大小kk为33,步长stride为2,假设不填充,输出维度将会是(x-k)/2+1,即为22;如果步长为1,那么输出将会是33.步长为1的前向传波和反向传播已有很多推导,不再赘述。

在深度学习中,输入数据通常是四维的,其形状为`(batch_size, in_channels, height, width)`,其中`batch_size`表示一批数据中样本的数量,`in_channels`表示输入通道数,`height`和`width`分别表示输入图像的高度和宽度。而对于一个`7×7`卷积核步长为1的二维卷积,其运行原理如下: #### 1. 卷积核的维度 卷积核是四维的,形状为`(out_channels, in_channels, kernel_height, kernel_width)`,这里`out_channels`是输出通道数,`in_channels`是输入通道数,`kernel_height = kernel_width = 7`。每个输出通道都有一组`in_channels`个`7×7`的二维卷积核,这组卷积核会与输入数据的各个通道进行卷积操作,然后将结果相加,得到该输出通道的特征图。 #### 2. 卷积操作过程 对于输入的四维数据`(batch_size, in_channels, height, width)`,会针对每一个样本(即每一个批次中的数据)进行卷积操作。具体步骤如下: - **通道处理**:对于每个输出通道,会将该通道对应的`in_channels`个`7×7`卷积核分别与输入数据的`in_channels`个通道进行二维卷积操作。二维卷积操作就是卷积核在输入数据的二维平面(高度和宽度方向)上滑动,每次滑动步长为1,在每个位置上,卷积核与对应的输入区域的元素逐元素相乘并求和,得到一个输出值。 - **通道融合**:将`in_channels`个二维卷积的结果相加,得到该输出通道在当前样本上的特征图。 - **多通道输出**:重复上述过程,直到得到所有`out_channels`个输出通道的特征图。 #### 3. 代码示例 ```python import torch import torch.nn as nn # 定义输入数据 batch_size = 2 in_channels = 3 height = 32 width = 32 input_data = torch.randn(batch_size, in_channels, height, width) # 定义卷积层 out_channels = 16 conv_layer = nn.Conv2d(in_channels, out_channels, kernel_size=7, stride=1) # 进行卷积操作 output = conv_layer(input_data) # 输出结果的形状 print(output.shape) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值