本文是在windows10上安装了CPU版本的Mindspore,并在mindspore的master分支基础上使用LeNet网络训练MNIST数据集,实践已训练成功,此文为记录过程中的出现问题;
(据说此时mindspore的r0.7版本上是直接执行成功的)

【1】首先使用conda activate mindspore 进入mindspore虚拟环境

【2】再切入mindspore中lenet网络的train.py所在目录 D:\gitee\mindspore\model_zoo\official\cv\lenet

【3】执行训练 python train.py --device-target=CPU (因为代码里默认使用的训练设备为Ascend,需要手动设置 --device_targetCPU

  • 问题一 No module named 'mindspore.dataset.vision’

报错:文件 D:\gitee\mindspore\model_zoo\official\cv\lenet\src\dataset.py 引入模块import mindspore.dataset.version.c_transforms as CV 错误;

原因:查看发现系统 miniconda3的mindspore环境中 在\dataset 和 \version文件夹中还有一层 \transforms


解决:修改dataset.py 文件中模块引用的位置;

import mindspore.dataset.transforms.vision.c_transforms as CV
from mindspore.dataset.transforms.vision import Inter

  

保存文件重新执行命令 python train.py --device-target=CPU

  • 问题二 ImportError: cannot import name ‘set_seed’ from 'mindspore.common’


报错:文件train.py中导入set_seed模块出错

原因: C:\Users\86183\miniconda3\envs\mindspore\Lib\site-packages\mindspore\common\__init__.py 文件中没有set_seed模块(也即common文件下没有set_seed.py文件)

解决:在train.py 中将以下两条语句注释掉

from mindspore.common import set_seed

set_seed(1)

  

保存文件重新执行命令 python train.py --device-target=CPU

  • 问题三 ValueError: The folder ./Data\train does not exist or permission denied!

原因:/Data/train 文件不存在

解决:在D:\gitee\mindspore\model_zoo\official\cv\lenet\ 下新建Data目录,并在Data目录下新建train和test文件夹

重新执行命令 python train.py --device-target=CPU

  • 问题四 RuntimeError: Currently dateset sink mode is not supported when the device target is CPU


原因:数据下沉模式是针对asic芯片做的优化 默认是开启的,CPU不支持这种模式

解决:改为执行命令 python train.py --device_target=CPU --dataset_sink_mode=False

  • 问题五: Unexpected error. There is no valid data matching the dataset API MnistDataset.Please check file path or dataset API validation first.

原因:脚本没有自动下载MNIST数据集,需要自己手动下载

解决:手动下载MNIST数据集MNIST数据集下载地址

MNIST数据目录结构:

t10k-labels-idx1-ubyte.gzt10k-images-idx3-ubyte.gz 解压到 问题三新建的Data/test 目录下
train-labels-idx1-ubyte.gztrain-images-idx3-ubyte.gz 解压到 问题三新建的Data/test 目录下


重新执行python train.py --device_target=CPU --dataset_sink_mode=False

  • 问题六 InferImplBiasAddGrad] BiasAddGrad input y backprop, dim should >= 2, while 1.

解决:在train.py中添加语句 is_grad=False, 变成下面这样

net_loss = nn.SoftmaxCrossEntropyWithLogits(sparse=True, reduction="mean",is_grad=False)

 

再度执行命令 python train.py --device_target=CPU --dataset_sink_mode=False , 训练成功;

【4】验证准确率: python eval.py --ckpt_path="ckpt/checkpoint_lenet-10_1875.ckpt" --device_target=CPU

============== Starting Testing ==============
============== {'Accuracy': 0.9844751602564102} ==============

  

 

Window10 上MindSpore(CPU)用LeNet网络训练MNIST的更多相关文章

  1. 2、TensorFlow训练MNIST

    装载自:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html TensorFlow训练MNIST 这个教程的目标读者是对机器学习和T ...

  2. MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...

  3. 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别

    由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...

  4. 基于LeNet网络的中文验证码识别

    基于LeNet网络的中文验证码识别 由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013 ...

  5. 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet

    原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...

  6. Pytorch 分割模型构建和训练【直播】2019 年县域农业大脑AI挑战赛---(四)模型构建和网络训练

    对于分割网络,如果当成一个黑箱就是:输入一个3x1024x1024 输出4x1024x1024. 我没有使用二分类,直接使用了四分类. 分类网络使用了SegNet,没有加载预训练模型,参数也是默认初始 ...

  7. 07_利用pytorch的nn工具箱实现LeNet网络

    07_利用pytorch的nn工具箱实现LeNet网络 目录 一.引言 二.定义网络 三.损失函数 四.优化器 五.数据加载和预处理 六.Hub模块简介 七.总结 pytorch完整教程目录:http ...

  8. Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度

     Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度 硬件平台: Raspberry Pi B+ 软件平台: Raspberry 系统与前期安装请参见:树莓派(Ros ...

  9. LeNet训练MNIST

    jupyter notebook: https://github.com/Penn000/NN/blob/master/notebook/LeNet/LeNet.ipynb LeNet训练MNIST ...

随机推荐

  1. springMVC入门(一)------springMVC基本概念与安装

    springMVC简介 springMVC是一个基于MVC的web框架,属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面. springMVC安装 本例中使用 ...

  2. Linux下执行SQL文件

    最近在使用MySQL数据库时,想要执行一些sql文件,就想到了source命令. source介绍:source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令. 功能:使Shell ...

  3. 按钮改变和控制div的形状的html,JavaScript代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 鼠标移上显示的下拉菜单,和鼠标移上时显示的导航,html,JavaScript代码

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. DVWA之文件上传(一)

    实验环境为三台虚拟机,网络互通,分别是: 1.kali,IP为192.168.230.131 2.win10,IP为192.168.230.142 3.server 2019,IP为192.168.2 ...

  6. 《HelloGitHub》第 53 期

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  7. javascript正则用法

    一.元字符 .      匹配除了换行符以外的字符. \w   匹配字母或者数字或者下划线 \W  匹配不是字母.数字.下划线 \d   匹配数字,相当于[0-9] \D  匹配不是数字的字符 \s  ...

  8. 23种设计模式 - 状态变化(Memento备忘录 - State)

    其他设计模式 23种设计模式(C++) 每一种都有对应理解的相关代码示例 → Git原码 ⌨ 状态变化 在组件构建过程中,某些对象的状态经常面临变化,如何对这些变化进行有效的管理?同时又维持高层模块的 ...

  9. JS - 对金额数字实现千分位格式化处理

    添加千分位处理: function fmoney(s, n) { n = n > 0 && n < = 20 ? n : 2; s = parseFloat((s + &q ...

  10. ssm简单整合

    pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="ht ...