代码获取请单击此处 HIT_AI_Intro_Exp

快速开始

1. 数据集准备 我们从网络上下载 MNIST_data 数据集,解压后放在文件夹下,可以看到分为训练集和测试集两部分 CleanShot 2025-11-17 at 11.41.55@2x.png

2. 训练模型 首先,你需要在电脑上安装 uv 工具(如果你熟悉 conda 也可以)。uv 安装随便去网上搜搜教程就行

拥有 uv 后,请你运行

uv --version

如果显示了版本则说明 uv 正常安装了

然后运行以下命令,安装所需要的 Python 包(如果你用过 conda 就是安装 requirenments.txt 里面的包,请使用 python 3.10)

uv sync

我们安装的是以下包,最重要的是 mindspore 训练框架CleanShot 2025-11-17 at 11.22.35@2x.png

然后训练我们的模型。命令为

uv run train.py --ckpt_path ./ckpt

可以看到训练开始了,显示每一轮以及损失 image.png 最终我们看到ckpt/下有一系列检查点,这些也就是我们训练得到的模。,最后一个 4-10 也就是第 10 个 epoch 得到的模型,最完整的模型 CleanShot 2025-11-17 at 11.48.01@2x.png

3. 评估模型 我们使用最后一个 checkpoint 得到的模型来使用 test 数据集进行评估

uv run eval.py --ckpt_path ckpt/checkpoint_lenet_4-10_1875.ckpt

运行如下图image.png 可以看到精度 98.88%,还是很不错的。接下来我们将使用图片真实的从使用角度测试该模型

3. PNG 推理(Streamlit) 想用真实 PNG 图片快速体验模型效果,可以启动 Streamlit 小应用:

uv run streamlit run streamlit_infer.py --server.port 8501

启动后在页面左侧填写 .ckpt 模型路径(默认会尝试 ckpt/ 目录下最新的文件),上传 PNG 手写数字,即可看到缩放后的输入图像与预测结果。 image.png

在这个页面拖拽上传一个 test_images/下的文件即可预测 CleanShot 2025-11-17 at 11.29.28.gif

主要文件讲解

实验总目录框架

主要为checkpoint,数据集,网络定义,训练和验证脚本 CleanShot 2025-11-17 at 11.49.29@2x.png

train.py

这个是主要采用mindspore框架训练一个 LeNet 网络的模型来进行手写预测。首先需要设定执行上下文 image.png 然后设定损失函数和优化器。使用 mean 作为损失函数 CleanShot 2025-11-17 at 11.25.20@2x.png

lenet.py

这里是我们重中之重。定义了我们该模型所采用的神经网络的形式。主要是采用卷积的形式来进行图像预测。此外还需要在输入层使用 ReLU 进行激活,并链接各个隐藏层 CleanShot 2025-11-17 at 11.50.02@2x.png

test.py

这是通过 mindspore 框架,使用测试集,得到一个模型精度 CleanShot 2025-11-17 at 11.43.32@2x.png 同样需要设置我们需要的 LeNet 网络形式,设定损失函数和优化器,然后加载 checkpoint,进行eval 验证

streamlit_infer.py

我们主要使用 mindspore 将模型转化为 tensor 推理的形式,并利用 softmax 函数计算出最终的前 n 个数字可能性。比如 3 的可能性是 98%,2 的可能性为 2% 这种结果,排名最高的就是模型预测的结果 CleanShot 2025-11-17 at 11.45.34@2x.png

全部预测结果

以下是全部的预测结果 CleanShot 2025-11-17 at 11.30.35@2x.png CleanShot 2025-11-17 at 11.30.54@2x.png CleanShot 2025-11-17 at 11.31.13@2x.png CleanShot 2025-11-17 at 11.31.44@2x.png CleanShot 2025-11-17 at 11.39.09@2x.png CleanShot 2025-11-17 at 11.39.26@2x.png CleanShot 2025-11-17 at 11.39.47@2x.png CleanShot 2025-11-17 at 11.40.02@2x.png CleanShot 2025-11-17 at 11.40.18@2x.png CleanShot 2025-11-17 at 11.40.34@2x.png