基于 Mindspore 框架与 ModelArts 平台的 MNIST 手写体识别实验

发布时间 2023-05-29 12:12:10作者: 江水为竭

简介

实验包含 2部分:

  1. 基于 Mindspore 框架的模型本地训练及预测
  2. 基于 Modelarts 平台和 PyTorch框架的模型训练及部署

基于 Mindspore 框架的模型本地训练及预测

本例子会实现一个简单的图片分类的功能,整体流程如下:

  1. 处理需要的数据集,这里使用了 MNIST 数据集。
  2. 定义一个网络,这里我们使用 LeNet 网络。
  3. 定义损失函数和优化器。
  4. 加载数据集并进行训练,训练完成后,查看结果及保存模型文件。
  5. 加载保存的模型,进行推理。
  6. 验证模型,加载测试数据集和训练后的模型,验证结果精度

安装 MindSpore

安装页面

如图:我是在自己电脑下载,所以下载Windows版本的,然后选CPU。python版本都可以选。

安装报错:

如果提示这个,一般是两个原因:

  • 你的电脑之前有装其他版本的pythonpip版本和python不对应。
    • 卸载python重新装一个。
    • 使用命令:python3 -m pip install --upgrade pip更新pip
  • 下载命令错误。安装MindSpore有两种pip命令,下面是另一种:

  • 如果报错,可以试试不同的命令(亲测有效)。

MNIST 数据集

我们示例中用到的 MNIST 数据集是由 10 类 28*28 的灰度图片组成,训练数据集包含60000 张图片,测试数据集包含 10000 张图片。

MNIST 数据集下载页面:下载页面

将数据集解压分别存放到工作区的./MNIST_Data/train、./MNIST_Data/test 路径下。

其他一些报错

现在,使用PyCharm打开文件夹。

  • 如果出现MindSpore找不到,

    验证一下的你的Interpreter:检查下Package

  • 提示需要下载easydict

    直接pip 下载,或通过Package中下载。

实验步骤

  • 打开项目,我使用的是PyCharm

  • 修改代码
    • 修改默认的设备,这里我是Windows下的CPU版本,所以修改为CPU

  • 增加eval.pytrain.py需要的代码:

    • 设定 loss 函数

    • 设定优化器

    • 编译形成模型

    • 训练网络

  • 增添lenet.py的代码。

  • 运行train.py

  • 之后,生成了ckpy文件夹。这里保存的用于测试的模型。那么第十轮我们损失函数最小,我们自然就用第十轮的模型:

  • 运行eval.py

基于 Modelarts 平台和 PyTorch 框架的模型训练及部署

先注册一个华为云账号。

然后按照教程:教程,一步一步完成即可。