原文地址:https://bbs.huaweicloud.com/forum/forum.php?mod=viewthread&tid=184154
1.在本地运行LeNet
第一步:从gitee(链接:https://gitee.com/lai-pengfei/LeNet )上下载LeNet代码并解压到本地;
第二步:安装tensorflow1.15环境
首先需要保证自己电脑上安装了Anaconda
打开Anaconda Prompt
先创建新环境:
conda create -n tensorflow1.15.0 python=3.6
出现如下界面后按y,再回车
创建成功之后输入如下指令激活环境:
conda activate tensorflow1.15.0
接着输入以下指令安装tensorflow1.15.0
注意:系统会默认安装cpu版本,但是运行LeNet已足够,如果需要GPU环境可自行百度
pip install tensorflow==1.15
第三步:将原代码Train.py中的
import tensorflow.examples.tutorials.mnist.input_data as input_data
改为:
from tensorflow.examples.tutorials.mnist import input_data
第四步:切换到代码所在目录,并运行指令:
python Train.py
20000步的运行结果:
2.准备工作
第一步:在Windows下安装Pycharm软件和下载Pycharm toolkit插件,最新版本Pycharm toolkit插件下载和安装可查看官网教程:https://support.huaweicloud.com/tg-modelarts/modelarts_15_0003.html
第二步:在我的凭证中查看并新增访问密钥,新增时一定要把密钥下载下来,里面包含了用户名,AK和SK
下载下来的访问密钥:
第三步:在Pycharm使用访问密钥登录Modelarts
过程比较简单,不会的可以参考:https://support.huaweicloud.com/tg-modelarts/modelarts_15_0005.html
第四步:下载OBS Browser+:下载地址
下载完成之后用我们第二步下载的AK和SK登录即可
第五步:创建桶
例如我的桶为cann-campus
打开桶,之后再新建如下图所示的两个文件夹:
其中dataset用于上传MNIST_data数据集:
ckpt用来保存训练结果(ckpt文件夹暂时空着就行)
3.修改训练脚本以支持昇腾Ai处理器上运行(模型迁移)
(参考自:https://bbs.huaweicloud.com/blogs/264500 )
第一步:在头文件添加:
from npu_bridge.npu_init import *
第二步:
现在数据集在OBS里面,所以使用moxing,将数据集从OBS拷贝到ModelArts环境里面:
红色框主的为需要添加的代码,黄色线标注的路径需要根据自己的路径修改
此处专为懒人提供可复制代码:
import moxing as mox
mox.file.copy_parallel(src_url="obs://cann-campus/dataset/MNIST_data/",dst_url="MNIST_data")
第三步:
将
sess = tf.Session()
改为这段代码即可:
config = tf.ConfigProto()
custom_op = config.graph_options.rewrite_options.custom_optimizers.add()
custom_op.name = "NpuOptimizer"
config.graph_options.rewrite_options.remapping = RewriterConfig.OFF # 必须显式关闭remap
sess = tf.Session(config=config)
第四步:
增加一行拷贝语句将checkpoint目录全部拷贝过来到OBS
红色框主的为需要添加的代码,黄色线标注的路径需要根据自己的路径修改
此处专为懒人提供可复制代码:
mox.file.copy_parallel(src_url="checkpoint/", dst_url="obs://cann-campus/ckpt")
4.在昇腾Ai处理器上运行LeNet
第1处:为本次Job的名称,可自行设置
第2处:和图中一样即可
第3处:根据自己迁移后的脚本所在文件路径,自行修改
第4处:OBS的路径,与准备工作第五步有关。需要注意的是:需要把路径中的 obs:/ 删掉
第5处:保持不动即可
最后点击 APPLY AND RUN 就可以运行了
运行结果: