Skip to content

My contribution#5450

Closed
9851zzz wants to merge 4 commits intoOpenHUTB:mainfrom
9851zzz:my-contribution
Closed

My contribution#5450
9851zzz wants to merge 4 commits intoOpenHUTB:mainfrom
9851zzz:my-contribution

Conversation

@9851zzz
Copy link
Copy Markdown
Contributor

@9851zzz 9851zzz commented Apr 18, 2026

修改概述:

修改的详细描述

  1. 设备自适应:新增 get_device(),自动在 CUDA / Apple MPS / CPU 之间切换,GPU 环境下训练提速约 10 倍以上。
  2. 数据预处理优化
    • 使用 MNIST 官方均值 / 标准差(0.1307 / 0.3081)进行标准化,替换原先简单的 /255 归一化;
    • 训练集加入 RandomAffine(±10° 旋转 + 10% 平移)数据增强,提升泛化能力。
  3. 网络结构升级:由 2 段卷积扩展为 3 段式 CNN(1→32→64→128 通道),每个 Block 内部加入双卷积 + Dropout2d,并改用 Kaiming 初始化。
  4. 训练策略优化
    • 优化器由 Adam 换成 AdamW(解耦权重衰减);
    • 学习率由恒定 1e-4 改为 1e-3 + CosineAnnealingLR 余弦退火调度;
    • CrossEntropyLoss 加入 label_smoothing=0.1
    • 训练轮数从 3 增加到 15,批大小从 50 增加到 128。
  5. 评估流程修正:原代码仅用前 500 张测试样本评估(结果偏差较大),改为在完整 10000 张测试集上批量推理评估。
  6. DataLoader 优化:启用 num_workers=2pin_memoryoptimizer.zero_grad(set_to_none=True) 节省显存。
  7. 模型持久化:按测试准确率自动保存最佳 checkpoint 至 best_cnn_mnist.pth,并固定随机种子保证复现。

经过了什么样的测试?

  1. 操作系统:Windows 11 / Ubuntu 22.04
  2. Python 版本:3.10;PyTorch 2.x;torchvision 0.15+
  3. 硬件:CPU 与 NVIDIA GPU(CUDA)均已验证可正常运行
  4. 对比测试:在相同 MNIST 数据集下,与原版脚本对比最终测试准确率与训练耗时

运行效

图片1微信图片_2026-04-18_134646_323

原来是99.2%, 现在是99.47%

动图、视频、截图等

@donghaiwang
Copy link
Copy Markdown
Member

image

youchong有冲突

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants