# mnist-cnn-tutorial **Repository Path**: xyxu421/mnist-cnn-tutorial ## Basic Information - **Project Name**: mnist-cnn-tutorial - **Description**: 基于 PyTorch 的 MNIST 手写数字识别教学项目 (MNIST Digit Recognition Teaching Project using PyTorch) - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-02 - **Last Updated**: 2026-03-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MNIST 手写数字识别入门教学项目 (PyTorch) 本项目是一个专为深度学习初学者设计的 MNIST 手写数字识别教学示例。通过卷积神经网络 (CNN) 实现,包含了从数据处理、模型训练、可视化到交互式推理的全流程。 ## 🌟 项目亮点 - **全流程覆盖**:包含数据加载、预处理、CNN 模型构建、训练循环、实时可视化、模型保存及推理。 - **高准确率**:模型在测试集上的准确率可达到 **99% 以上**。 - **教学导向**:代码包含详细的中文注释,解释了每一步的数学原理和 PyTorch 机制。 - **交互式 GUI**:提供了一个轻量级的交互界面,支持鼠标手写并实时识别。 ## 📂 项目结构 ```text mnist_cnn/ ├── mnist_tutorial.ipynb # 核心教学 Notebook(包含原始数据预览、预处理检视及完整流程) ├── train.py # 独立训练脚本(支持 GPU 加速,保存最优权重) ├── interactive_gui.py # 基于 tkinter 的轻量级交互式手写识别界面 ├── best_model.pth # 训练完成后的最优模型权重文件 └── README.md # 项目说明文档 ``` ## 🛠️ 环境配置 项目基于已配置好的 Conda `torch` 环境。如需手动配置,建议环境如下: - Python 3.8+ - PyTorch (推荐 GPU 版本) - torchvision - matplotlib - Pillow (用于 GUI 图像处理) - tkinter (Python 内置) 安装依赖: ```bash pip install torch torchvision matplotlib Pillow ``` ## 🚀 使用指南 ### 1. 交互式学习 (Notebook) 打开 `mnist_tutorial.ipynb`,按照步骤运行单元格。您可以: - 查看最初始的 MNIST 图像。 - 理解数据归一化的原理。 - 观察训练过程中的 Loss 和 Accuracy 变化曲线。 ### 2. 命令行训练 如果您想直接运行训练脚本: ```bash python train.py ``` 训练完成后,会自动保存 `best_model.pth`。 ### 3. 交互式手写识别 (GUI) 运行以下命令启动手写识别界面: ```bash python interactive_gui.py ``` 在弹出窗口的黑色区域用鼠标写下数字,点击“识别”即可看到 AI 的预测结果及其置信度。 ## 🧠 模型说明 (SimpleCNN) 模型包含: - **2 个卷积层**:提取图像空间特征。 - **ReLU 激活函数**:引入非线性能力。 - **2x2 最大池化层**:降低维度,保留核心特征。 - **2 个全连接层**:将提取的特征映射到 10 个数字类别上。 --- *本项目作为深度学习入门范例,旨在帮助初学者快速掌握 PyTorch 的基本使用与 CNN 的工作原理。*