LeNet实现手写数字识别

使用LeNet模型训练MNIST数据集
该博客介绍了如何使用LeNet网络结构来训练经典的MNIST手写数字识别数据集。首先,详细说明了LeNet的网络结构,包括卷积层、池化层等。然后,展示了使用PyTorch实现LeNet模型的完整代码,包括数据预处理、模型定义、训练过程和测试。最后,提供了加载和测试单个图像的代码示例。

MNIST数据集:https://github.com/wwjjss/MNIST/tree/main

代码:https://github.com/wwjjss/LeNet_MNIST/tree/main

LeNet介绍:

网络结构:

1:输入,大小表示为(C*H*W)=(channel,hight,width),下同

输入图像大小为32*32

2:C1卷积层

输入通道1,输入通道6,卷积核大小5*5,步长1,填充2,得到输出特征图大小(6*28*28)

3:S2池化层

输入大小6*28*28,卷积核2*2,步长2,使得特征图变为原来的一半,输出大小为(6*14*14)

4:C3卷积层

输入通道6,输出通道16,输入大小(6*14*14),卷积核5*5,输出大小(16*10*10)

5:S4池化层

输入大小16*10*10

代码部分:

import torch
import torch.nn as nn  # 引入pytorch函数库
import torchvision  # 引入pytorch的图形库(torchvision.datasets/.models/.transforms/.utils)
import torchvision.transforms as transforms  # 图形变换(如tensor转换)

# 是否使用GPU
DEVICE = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# 设置超参数
NUM_CLASSES = 10  # 分类数目
EPOCHS = 5  # 训练轮次
BATCH_SIZE = 100  # 一轮训练批量大小
LR = 0.001  # 学习率learning_rate

# 创建数据集(root:设置数
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

让我看看谁在学习

你的鼓励是我创作动力

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

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

打赏作者

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

抵扣说明:

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

余额充值