文件最后提交记录最后更新时间
30 天前
30 天前
README

MNIST 手写数字识别 —— 昇腾 NPU 入门教程

在昇腾 NPU 上完成深度学习的"Hello World":训练一个 CNN 卷积神经网络识别手写数字。本教程面向零基础学习者,无需任何 GPU/CUDA 知识,从环境初始化到模型训练、评估、保存全流程跑通。

完整代码与分步说明见 mnist.ipynb

体验配置

项目 数值
NPU 卡数 单卡(实测环境为昇腾 910B3)
模型 两层卷积 + 两层全连接的 CNN(~28K 参数)
数据集 MNIST(60000 训练 / 10000 测试,28×28 灰度图)
训练轮数 12 epoch
batch size 256
学习率 1e-4
训练耗时 约 222s(3.7 分钟)
最终准确率 约 97.7%

前置条件

项目 要求
硬件 昇腾 910B 系列及以上
CANN 9.2.0
PyTorch / torch_npu PyTorch 2.7.1 / torch_npu 2.7.1.post4
Python 3.11
其他依赖 pip install torchvision swanlab

配置 SwanLab API Key

首次使用需要在 SwanLab 官网 注册账号,在终端环境中完成登录:

swanlab login

打开 Notebook

jupyter notebook mnist.ipynb

教程结构

步骤 内容
第 1-2 步 初始化 CANN 环境,导入工具库
第 3 步 检查 NPU 设备
第 4-5 步 加载 MNIST 数据集,划分训练集/验证集
第 6-7 步 构建 CNN 模型,放到 NPU 上
第 8-9 步 定义损失函数和优化器,初始化 SwanLab
第 10-11 步 编写训练/验证函数,开始训练
第 12-13 步 保存模型,可视化预测结果
第 14 步 查看训练曲线与分享
课后练习 10 道客观题 + 3 道实践题(初/中/高)

目录说明

文件 作用
README.md 本文档
mnist.ipynb 完整教程:环境初始化 → 数据加载 → 模型构建 → 训练 → 评估 → 课后练习