卷积神经网络的输出形状

卷积层的输出形状输入形状卷积核窗口形状填充步幅决定。

1. 当没有填充且步幅为1时
假设输入形状是nh×nw,卷积核窗口形状是kh×kw
输出形状为:
在这里插入图片描述
2.当有填充且步幅为1时
假设输入形状是nh×nw,卷积核窗口形状是kh×kw,在高的两侧一共填充ph行,在宽的两侧一共填充pw
输出形状为:
在这里插入图片描述
3.当有填充且步幅不为1时

假设输入形状是nh×nw,卷积核窗口形状是kh×kw,在高的两侧一共填充ph行,在宽的两侧一共填充pw列,当高上步幅为sh,宽上步幅为sw
输出形状为:
在这里插入图片描述
特别的,当输入的高和宽能分别被高和宽上的步幅整除,那么输出形状将是:
在这里插入图片描述

### 卷积神经网络中的输出通道 #### 输出通道的作用 在卷积神经网络(CNN)架构里,输出通道数量决定了该层能够学习多少种不同的特征模式。每一个输出通道对应一组特定的滤波器(即卷积核),用于检测图像或其他输入数据上的不同特性,比如边缘、纹理或是更复杂的形状结构。随着层数加深,更高层次的抽象概念也会被捕捉到。 对于多输出通道的设计,在于让模型可以并行地从同一输入中提取多种类型的局部特征[^3]。这不仅增加了表达能力,还使得后续处理单元能接收到更加丰富的信息表示形式,有助于提高分类准确性以及增强对复杂模式的理解能力。 #### 实现方式 为了实现具有多个输出通道的卷积操作,需要为每一组期望得到的新特征图分配独立的一套权重参数——也就是所谓的“深度”。具体来说: - 如果前一层拥有\(C_{in}\)个输入通道,则当前层针对每个目标输出通道都需要准备大小相同但数值各异的\(K \times K\)尺寸的小矩阵作为卷积核; - 假设要创建\(C_{out}\)个这样的新通道,则总共会有\(C_{out} * C_{in} * K^2\)个可训练参数参与其中; 下面给出一段Python代码片段展示如何定义一个多输出通道的卷积层: ```python import torch.nn as nn class MultiChannelCNN(nn.Module): def __init__(self, in_channels=1, out_channels=6, kernel_size=(5, 5)): super(MultiChannelCNN, self).__init__() # 定义一个带有六个输出通道的标准二维卷积层 self.conv_layer = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size) def forward(self, x): output = self.conv_layer(x) return output ``` 这段代码展示了怎样通过PyTorch框架来设置一个简单的卷积层,它接受单通道灰度图片作为输入(`in_channels=1`),并通过应用六组不同的\(5\times5\)大小的过滤器生成新的特征映射(`out_channels=6`)[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值