news 2026/4/16 12:43:08

卷积神经网络

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
卷积神经网络

卷积神经网络的结构

卷积神经网络(CNN)主要由输入层、卷积层、激活函数、池化层和全连接层组成。典型结构为:

  • 输入层(INPUT):接收原始图像数据(如RGB图像为3通道)。
  • 卷积层(CONV):通过卷积核提取局部特征,参数包括输入/输出通道数、卷积核大小、步长和填充。
  • 激活函数(RELU):引入非线性,常用ReLU函数解决梯度消失问题。
  • 池化层(POOL):降维并保留主要特征,如最大池化选取局部最大值。
  • 全连接层(FC):整合特征并输出分类结果。

卷积神经网络的计算

输出特征图尺寸的计算公式为:
[ N = \frac{W - F + 2P}{S} + 1 ]

  • 参数说明
    • ( W ):输入尺寸(如256x256)。
    • ( F ):卷积核大小(如11x11)。
    • ( P ):填充值(如2)。
    • ( S ):步长(如4)。
  • 示例
    • 输入256x256,卷积核11x11,步长4,填充2:
      [ N = \frac{256 - 11 + 2 \times 2}{4} + 1 = 63 ]
      输出尺寸为63x63。

AlexNet实例详解

AlexNet包含5个卷积层和3个全连接层,使用PyTorch实现:

self.conv1=torch.nn.Sequential(torch.nn.Conv2d(3,96,kernel_size=11,stride=4,padding=0),torch.nn.ReLU(),torch.nn.MaxPool2d(kernel_size=3,stride=2)# 输出27x27x96)
  • 逐层分析
    • 卷积层1:输入227x227x3,输出55x55x96(经ReLU和池化后为27x27x96)。
    • 卷积层2-5:逐步缩小空间尺寸,增加通道数(如输出13x13x256、6x6x256)。
    • 全连接层:将6x6x256展平为9216维向量,经两层4096神经元和ReLU、Dropout后输出50类结果。

常见卷积层设置问题

问题1:为何使用Conv2d?

  • Conv1d:处理文本等一维数据,仅对宽度卷积。
  • Conv2d:处理图像等二维数据,对高度和宽度同时卷积。

问题2:卷积核参数简化

  • nn.Conv2d(3, 6, 5)5表示5x5的方形卷积核。若需非方形核,需显式指定(如(5, 3))。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!