CNN卷积神经网络

1.什么是卷积?

在卷积神经网络中,卷积操作是指将一个可移动的小窗口(称为数据窗口,如下图绿色矩形)与图像进行逐元素相乘然后相加的操作。这个小窗口其实是一组固定的权重,它可以被看作是一个特定的滤波器(filter)或卷积核。这个操作的名称“卷积”,源自于这种元素级相乘和求和的过程。这一操作是卷积神经网络名字的来源。

这张图中蓝色的框就是指一个数据窗口,红色框为卷积核(滤波器),最后得到的绿色方形就是卷积的结果(数据窗口中的数据与卷积核逐个元素相乘再求和)
 

影响卷积的因素有哪些?

1,步长stride:每次滑动的位置长度。

2,卷积核的个数。

3,填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

2.卷积神经网络的构成

卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习模型,特别适用于处理具有网格结构的数据,如图像。CNN的核心思想是通过卷积层、池化层和全连接层来提取和学习图像的特征。

2.1卷积层(Convolutional Layer)

卷积层是CNN的核心组成部分,用于提取图像的局部特征。卷积层通过卷积核(也称为滤波器)在输入图像上滑动,计算局部区域的特征。

结构含义:

*输入:通常是一个多通道的图像(例如RGB图像有3个通道)。

*卷积核:一个小的权重矩阵,用于在输入图像上滑动并计算特征。

*输出:卷积操作的结果,通常称为特征图(Feature Map)

import torch
import torch.nn as nn

# 定义卷积层
conv_layer = nn.Conv2d(in_channels=1, out_channels=32, kernel_size=3, stride=1, padding=1)

# 输入图像的形状为 (batch_size, channels, height, width)
input_tensor = torch.randn(1, 1, 28, 28)

# 前向传播
output_tensor = conv_layer(input_tensor)
print(output_tensor.shape)  # 输出
### CNN卷积神经网络结构图 CNN 的典型架构由多个层次组成,这些层次共同作用来提取图像中的复杂特征并最终完成分类或其他任务。下面是一个基于LeNet架构的简化版CNN结构图说明[^2]: #### 输入层 - 图像作为输入进入网络。 #### 卷积层 - 使用滤波器(也称为内核)扫描整个输入图像的不同部分。 - 这些操作的结果是创建一组被称为特征映射的新矩阵,其中每个元素代表原始像素值经过特定变换后的结果。 ```python import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super(SimpleCNN, self).__init__() self.conv1 = nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5) ``` #### 激活函数 - 应用ReLU等非线性激活函数到每一个特征映射上,使得模型能够捕捉更加复杂的模式。 #### 池化层(MaxPooling) - 减少数据量的同时保留最重要的信息;通常采用最大池化方法,在局部区域内取最大值以降低维度。 ```python self.pool = nn.MaxPool2d(kernel_size=2, stride=2) ``` #### 多个重复阶段 - 上述过程可以在不同尺度下多次迭代执行,形成多级抽象表示。 #### 全连接层 - 将最后一个卷积/池化的输出展平成一维向量,并通过一系列全连接层传递给输出节点之前进一步处理。 ```python self.fc1 = nn.Linear(16 * 4 * 4, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) ``` ![A simplified illustration of a Convolutional Neural Network based on LeNet architecture](https://upload.wikimedia.org/wikipedia/commons/thumb/6/63/Typical_cnn_architecture.png/800px-Typical_cnn_architecture.png) 此图为典型的CNN架构示意图,展示了各主要组成部分之间的关系及其在整个流程中的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值