卷积神经网络(Convolutional Neural Network, CNN)

卷积神经网络(CNN) 是一种专门用于处理具有网格结构数据的深度学习模型,最常用于处理二维图像数据。它由多层神经元组成,能够自动学习输入数据的层次化特征。CNN 之所以被称为卷积网络,是因为它在模型的核心部分使用了 卷积操作(Convolution Operation),这种操作擅长捕捉数据中的局部模式(如图像中的边缘、角点等)。
CNN 在图像分类、目标检测、语音识别等领域取得了巨大成功,原因在于它能够有效地提取空间信息,同时减少参数数量,提高训练速度。
- CNN的基本结构
典型的 CNN 由多层组成,每一层都会执行特定的任务。主要的层类型包括:
1.1 卷积层(Convolutional Layer)
卷积层是 CNN 中的核心层,用于提取输入数据的局部特征。每一个卷积层都会对输入数据进行卷积操作,输出一个特征图(Feature Map)。
卷积操作:卷积操作是用一个小的 卷积核(Filter 或 Kernel) 在输入数据上进行滑动,并计算卷积核与局部数据的点积。通过这种方式,卷积层能够识别出输入数据的局部特征,如图像中的边缘、纹理等。
卷积核的尺寸:卷积核的大小通常是 3×33 \times 3
3×3、5×55 \times 5
5×5 等,这意味着卷积核会一次在图像的 3×33 \times 3
3×3 或 5×55 \times 5
5×5 区域内计算点积。
例如,假设我们有一个大小为 32×3232 \times 32
32×32 的图像,经过卷积操作后,可能得到一个较小的特征图,表示图像中局部区域的某些模式(如边缘、线条)。
步长(Stride):卷积核在输入数据上滑动的步幅。步长越大,卷积核每次移动的距离越大,输出的特征图就越小。
填充(Padding):为了保持卷积后的输出与输入的大小一致,可以在输入的边缘填充额外的像素(通常为 0)。
python
复制代码
import tensorflow as tf
from tensorflow.keras import layers
# 添加卷积层,使用32个3x3的卷积核
model = tf.keras


1575

被折叠的 条评论
为什么被折叠?



