机器学习实战之一:mindspore+Lenet(win10)
lenet是经典的神经网络。于1989年提出。
训练方式和平台
使用华为的mindspore 框架和mindspore 在gitee 上的机器学习代码。 开发环境:win10 、pycharm 、Anaconda 。 语言:python3.7.5 ,这个版本是mindspore官网规定的,详见这里。
初始参考链接: Ubuntu使用Mindspore训练跑通Lenet Mindspore1.0初体验
步骤
1、安装mindspore环境
在pycharm 中配置好Anaconda 环境,使用Anaconda创建项目lenet。在terminal使用如下命令中创建虚拟环境lenet(虚拟环境名称自定义): conda create -n lenet python=3.7.5
之后进入虚拟环境: conda activate lenet
使用pip 安装mindspore 框架: 这一步的执行命令在mindspore官网安装教程可以找到,在页面中选择使用的mindspore和开发环境的版本好,会在下方自动生成对应的执行命令。
这里说明一下,本教程主要依据的是 Mindspore1.0初体验。该链接教程中使用的mindspore版本是1.0.0。但是在目前的mindspore官网安装教程,只有1.2.1和1.1.1两个版本。在官网获取安装命令时,我的选择如下: 为了和源教程的版本号保持一致,我将上图安装命令中的mindspore版本号部分改为1.0.0,最终命令如下: pip install https://ms-release.obs.cn-north-4.myhuaweicloud.com/1.0.0/MindSpore/cpu/windows_x64/mindspore-1.0.0-cp37-cp37m-win_amd64.whl --trusted-host ms-release.obs.cn-north-4.myhuaweicloud.com -i https://pypi.tuna.tsinghua.edu.cn/simple
在pycharm 的终端执行以上命令,mindspore 1.0.0的框架仍可以安装成功。
2、下载mindspore在gitee 上的深度学习代码项目(包含lenet)
代码项目:mindspore上的lenet代码。 点击界面右上角的克隆/下载 。 点击“下载ZIP”会下载整个mindspore 深度学习代码压缩包。 同样,由于这个 Mindspore1.0初体验发布的时间是2020.10期间,在我写这篇文章的时候,gitee 上的mindspore 代码已经被多次更新,至少lenet部分的python代码已经和原来有较大的差别。 这里我比较懒,就干脆找到源教程发布时的版本。 为了和源教程一致,我费了点力——Mindspore1.0初体验这个教程发布时的日期是2020年10月03日,gitee 可以浏览项目的历史版本: 点击下图中的XXX次提交 会跳转到统计提交的页面 点击浏览文件 ,会提示浏览对应的历时版本。 在历史版本中找到2020年10月03日之前的最后一次更改(也就是这里),并下载此时的代码项目放到我们的lenet项目文件夹之下。(项目根目录本是mindspore,我这里自己改成了ms_old)
注意
代码拷到目录下之后,部分代码文件里的import会报错如下 这种现象不影响后面的训练和测试的代码执行。
(这里的路径导入错误也是可以在编辑器里面“改正”的,但是改正后会导致后续的步骤执行发生错误)
3、准备训练文件和测试文件-MNIST数据集
MNIST数据集的下载地址是 http://yann.lecun.com/exdb/mnist/ 依次下载这四项文件。 前两项train 开头的train-images-idx3-ubyte.gz 和train-labels-idx1-ubyte.gz 是训练集文件; 后两项t10k-images-idx3-ubyte.gz 和t10k-labels-idx1-ubyte.gz 是测试集文件。 四个压缩包下载完成之后,在项目路径ms_old/model_zoo/official/cv/lenet 之下新建文件夹MNIST_DATA ;继而在此之下继续新建文件夹train 和test ,将解压后的train-images-idx3-ubyte.gz 和train-labels-idx1-ubyte.gz 放在train 中;解压后的t10k-images-idx3-ubyte.gz 和t10k-labels-idx1-ubyte.gz 放在test 中。
4、执行训练
找到ms_old/model_zoo/official/cv/lenet 之下的train.py,修改两处地方:
同文件夹下的eval.py,同样要修改两处: 改好之后,在pycharm的terminal中,将执行路径转到如下: cd ms_old/model_zoo/official/cv/lenet 执行训练代码: python train.py 即可执行训练。这需要一会儿。 训练结束时会出现图中的最后一行。
5、执行测试
在训练结束后,执行测试代码: python eval.py --ckpt_path=./ckpt/checkpoint_lenet-10_1875.ckpt 最后会输出识别率:
|