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 ...
随机推荐
- SSM框架整合练习——一个简单的文章管理系统
使用SSM框架搭建的简易文章管理系统,实现了简单的增删改查功能. @ 目录 开发工具版本: 最终的项目结构 IDEA+Maven搭建项目骨架 1. 新建Maven项目: 2. 在新建的项目中添加所需要 ...
- java基础-01:dos命令
进入cmd方式 win + r 输入 cmd 随便进入一个文件夹 在导航栏输入cmd,回车即进入命令行 命令 盘符切换:直接输入 E: ,回车即可 查看文件夹下所有目录:dir 切换目录: cd 跨盘 ...
- Jmeter 常用函数(2)- 详解 __RandomDate
如果你想查看更多 Jmeter 常用函数可以在这篇文章找找哦 https://www.cnblogs.com/poloyy/p/13291704.html 作用 产生一个随机日期 语法格式 ${__R ...
- 精讲响应式WebClient第3篇-POST、DELETE、PUT方法使用
本文是精讲响应式WebClient第3篇,前篇的blog访问地址如下: 精讲响应式webclient第1篇-响应式非阻塞IO与基础用法 精讲响应式WebClient第2篇-GET请求阻塞与非阻塞调用方 ...
- 国际象棋棋盘输出-PHP代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ZERO:新手应该如何学习SEO优化
http://www.wocaoseo.com/thread-325-1-1.html 有一个10000小时理论,说是在各行各业,想成为大师级的人物就要付出10000小时的努力,在SEO这边也是如此. ...
- vs使用fscanf和fprintf错误警告处理
严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'.strcmp):This function or variable may be unsafe. 最全解决办法(转 ...
- 前端测试框架Jest——语法篇
使用匹配器 使用不同匹配器可以测试输入输出的值是否符合预期.下面介绍一些常见的匹配器.普通匹配器最简单的测试值的方法就是看是否精确匹配.首先是toBe() test('two plus two is ...
- e3mall商城的归纳总结5之修改商品分类、e3mall—content的搭建
说在前面的话 本节基本上没有用到新的知识点.主要还是对数据库的增删改查以及创建了一个新的内容模块. 新增商品分类 由于easyUI的Tree需要三个字段(Id.state.text), [{ &quo ...
- C++ Templates (2.2 使用Stack类模板 Use of Class Template Stack )
返回完整目录 目录 2.2 使用Stack类模板 Use of Class Template Stack 2.2 使用Stack类模板 Use of Class Template Stack 在C++ ...