LeNet-5:深度学习与卷积神经网络的里程碑

目录

​编辑

引言

LeNet-5的结构与原理

输入层

C1层:卷积层

S2层:池化层

C3层:卷积层

S4层:池化层

C5层:卷积层

F6层:全连接层

输出层

LeNet-5的算法基础

LeNet-5的优点

LeNet-5的现代应用

深度学习的发展历程

感知机与多层感知机

反向传播算法与卷积神经网络

深度学习的重大突破

深度学习的现代应用

深度学习的挑战与未来

结论


引言

在人工智能的发展历程中,LeNet-5不仅是一个技术突破,更是深度学习和卷积神经网络(CNN)发展史上的一个重要里程碑。由Yann LeCun等人在1998年提出,LeNet-5最初被设计用于手写数字识别任务,其成功应用不仅证明了深度学习在图像识别领域的潜力,也为后续的深度学习研究和应用奠定了坚实的基础。本文将详细解析LeNet-5的原理、结构、算法基础,并探讨其在现代深度学习应用中的影响和深度学习的发展历程。

LeNet-5的结构与原理

LeNet-5的网络结构简洁而高效,它包含7层(不包括输入层),由两个卷积层、两个池化层和三个全连接层组成。这种结构在当时是一个创新,因为它能够自动从图像中提取特征,而不需要人工设计特征提取器。

输入层

LeNet-5的输入层接收一个32x32像素的灰度图像,这是网络的起点,图像数据将从这里开始流经整个网络。

import torch
import torch.nn as nn

# 定义输入图像的尺寸
input_image_size = (1, 32, 32)  # 1代表灰度图像的通道数

# 创建一个模拟输入张量,代表一个批次中的多个图像
input_tensor = torch.randn(10, *input_image_size)  # 假设一个批次有10张图像

C1层:卷积层

C1层是LeNet-5的第一个卷积层,它使用6个5x5大小的卷积核,步长为1,不使用零填充,卷积操作后得到6个28x28的特征图。

# 定义C1层的卷积操作
conv1 = nn.Conv2d(in_channels=1, out_channels=6, kernel_size=5, stride=1, padding=0)

# 应用卷积操作到输入张量
feature_maps_c1 = conv1(input_tensor)
print("C1层特征图尺寸:", feature_maps_c1.shape)  # 应该输出: torch.Size([10, 6, 28, 28])

S2层:池化层

S2层是一个2x2的最大池化层,它将C1层的特征图尺寸降低到14x14,这有助于减少计算量,并增加网络的平移不变性。

# 定义S2层的最大池化操作
pool2 = nn.MaxPool2d(kernel_size=2, stride=2)

# 应用池化操作到C1层的特征图
feature_maps_s2 = pool2(feature_maps_c1)
print("S2层特征图尺寸:", feature_maps_s2.shape)  # 应该输出: torch.Size([10, 6, 14, 14])

C3层:卷积层

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WeeJot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值