Window10 上MindSpore(CPU)用LeNet网络训练MNIST
本文是在windows10上安装了CPU版本的Mindspore,并在mindspore的master分支基础上使用LeNet网络训练MNIST数据集,实践已训练成功,此文为记录过程中的出现问题;
(据说此时mindspore的r0.7版本上是直接执行成功的)
- Windows10
- Miniconda 4.8.3
- Python 3.7.7
- MindSpore master mindspore的gitee地址
【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_target为CPU)
- 问题一 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.gz 和t10k-images-idx3-ubyte.gz 解压到 问题三新建的Data/test 目录下
将train-labels-idx1-ubyte.gz 和train-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的更多相关文章
- 2、TensorFlow训练MNIST
装载自:http://www.tensorfly.cn/tfdoc/tutorials/mnist_beginners.html TensorFlow训练MNIST 这个教程的目标读者是对机器学习和T ...
- MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...
- 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别
由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...
- 基于LeNet网络的中文验证码识别
基于LeNet网络的中文验证码识别 由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013 ...
- 卷积网络训练太慢?Yann LeCun:已解决CIFAR-10,目标 ImageNet
原文连接:http://blog.kaggle.com/2014/12/22/convolutional-nets-and-cifar-10-an-interview-with-yan-lecun/ ...
- Pytorch 分割模型构建和训练【直播】2019 年县域农业大脑AI挑战赛---(四)模型构建和网络训练
对于分割网络,如果当成一个黑箱就是:输入一个3x1024x1024 输出4x1024x1024. 我没有使用二分类,直接使用了四分类. 分类网络使用了SegNet,没有加载预训练模型,参数也是默认初始 ...
- 07_利用pytorch的nn工具箱实现LeNet网络
07_利用pytorch的nn工具箱实现LeNet网络 目录 一.引言 二.定义网络 三.损失函数 四.优化器 五.数据加载和预处理 六.Hub模块简介 七.总结 pytorch完整教程目录:http ...
- Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度
Raspberry Pi B+ 定时向物联网yeelink上传CPU GPU温度 硬件平台: Raspberry Pi B+ 软件平台: Raspberry 系统与前期安装请参见:树莓派(Ros ...
- LeNet训练MNIST
jupyter notebook: https://github.com/Penn000/NN/blob/master/notebook/LeNet/LeNet.ipynb LeNet训练MNIST ...
随机推荐
- 多线程系列(二)之Thread类
在上一遍文章中讲到多线程基础,在此篇文章中我们来学习C#里面Thread类.Thread类是在.net framework1.0版本中推出的API.如果对线程的概念还不太清楚 的小伙伴请阅读我的上一遍 ...
- 算法-图(1)Dijkstra求最短路径
数组dist[],是当前求到的顶点v到顶点j的最短路径长度 数组path[]存放求到的最短路径,如path[4]=2,path[2]=3,path[3]=0,则路径{0,3,2,4}就是0到4的最短路 ...
- python open函数初习
open("路径","打开方式") 打开方式:'r'只读模式,‘w’写模式,‘a’追加模式 ‘b’二进制模式,‘+’读/写模式.例: fh=open(&quo ...
- Java 实例 - 查看当前工作目录
package guyu.day0820; /** * @Author: Fred * @Date: 2020/8/20 14:25 */ public class Demo03 { public s ...
- 6. 二十不惑,ObjectMapper使用也不再迷惑
一滴水,用显微镜看,也是一个大世界.本文已被 https://www.yourbatman.cn 收录,里面一并有Spring技术栈.MyBatis.JVM.中间件等小而美的专栏供以免费学习.关注公众 ...
- 焦大:以后seo排名核心是用户需求点的挖掘
http://www.wocaoseo.com/thread-61-1-1.html 给我一个用户需求点,我便能拗动任何seo排名.-焦大 前不久我看博客上有人留言咨询能否做seo这个词的排名,对于这 ...
- 03.AOF持久化机制配置与工作流程
一.AOF持久化的配置 配置文件redis.conf,AOF持久化默认是关闭的,默认是打开RDB持久化 appendonly yes 二.工作流程: 打开AOF持久化机制之后,redis每次接 ...
- 使用 C# 捕获进程输出
使用 C# 捕获进程输出 Intro 很多时候我们可能会需要执行一段命令获取一个输出,遇到的比较典型的就是之前我们需要用 FFMpeg 实现视频的编码压缩水印等一系列操作,当时使用的是 FFMpegC ...
- sha1sum校验方法
sha1sum校验方法,我们可以保存到一个文件中.还可以根据已经得到的hash来确认文件.MD5类似. [root@ffcs211 test_dir]# sha1sum New.EXE 3fe44e8 ...
- C# 压缩、解压文件夹或文件(带密码)
今天梳理一下项目中用到的压缩.解压文件夹或文件的方法,发现因为需求不同,已经用了好几个不同组件.今天就好好整理记录下,别下次遇到需求又重头开始了. DotNetZip DotNetZip是一个开源的免 ...