From d5b5c3a3ef0c0b99ee67c6f575b184b1c2088ae1 Mon Sep 17 00:00:00 2001 From: dongyonghan Date: Fri, 21 Aug 2020 20:36:55 +0800 Subject: [PATCH] update moxing copy, description --- checkpoint/README.md | 41 ++++++---- checkpoint/main.py | 29 ++++--- deeplabv3/README.md | 78 ++++++++----------- experiment_4/4-Natural_Language_Processing.md | 4 +- feedforward/README.md | 10 +-- knn/README.md | 7 +- lenet5/README.md | 19 ++--- lenet5/main.py | 11 +-- linear_regression/README.md | 2 +- logistic_regression/README.md | 5 +- optimizer/README.md | 8 +- resnet50/README.md | 21 ++--- softmax_regression/README.md | 5 +- 13 files changed, 125 insertions(+), 115 deletions(-) diff --git a/checkpoint/README.md b/checkpoint/README.md index e4cb407..7a47c57 100644 --- a/checkpoint/README.md +++ b/checkpoint/README.md @@ -29,7 +29,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 - Windows/Ubuntu x64笔记本,NVIDIA GPU服务器,或Atlas Ascend服务器等。 ## 实验准备 @@ -411,33 +411,48 @@ parser.add_argument('--train_url', required=True, default=None, help='Location o args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。 -- 方式一,拷贝自己账户下OBS桶内的数据集。 +**方式一** + +- 训练开始前,拷贝自己账户下OBS桶内的数据集至执行容器。 ```python import moxing + # src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径 moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/') ``` + +- 训练结束后,将Checkpoint拷贝到自己的OBS桶中。 + + ```python + import moxing + # dst_url形如's3://OBS/PATH',将ckpt目录拷贝至OBS后,可在OBS的`args.train_url`目录下看到ckpt目录 + moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) + ``` + +**方式二** + +- 训练开始前,拷贝他人账户下OBS桶内的数据集至执行容器,前提是他人账户下的OBS桶已设为公共读/公共读写,且需要他人账户的访问密钥、私有访问密钥、OBS桶-概览-基本信息-Endpoint。 -- 方式二,拷贝他人账户下OBS桶内的数据集,前提是他人账户下的OBS桶已设为公共读/公共读写,且需要他人账户的访问密钥、私有访问密钥、OBS桶-概览-基本信息-Endpoint。 - ```python import moxing - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket + # 设置他人账户的ModelArts密钥, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', server="obs.cn-north-4.myhuaweicloud.com") - # copy dataset from obs bucket to container/cache moxing.file.copy_parallel(src_url="s3://share-course/dataset/MNIST/", dst_url='MNIST/') ``` -如需将训练输出(如模型Checkpoint)从执行容器拷贝至OBS,请参考: +- 训练结束后,将Checkpoint拷贝到自己的OBS桶中,先通过`set_auth()`设置自己账户的密钥,然后再行拷贝。 -```python -import moxing -# dst_url形如's3://OBS/PATH',将ckpt目录拷贝至OBS后,可在OBS的`args.train_url`目录下看到ckpt目录 -moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) -``` + ```python + import moxing + moxing.file.set_auth(ak='Your own Access Key', sk='Your own Secret Access Key', + server="obs.cn-north-4.myhuaweicloud.com") + moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) + ``` + + 如果不设置自己账户的密钥,则只能将Checkpoint拷贝到他人账户下的OBS桶中。 ### 创建训练作业 diff --git a/checkpoint/main.py b/checkpoint/main.py index 828f502..7645044 100644 --- a/checkpoint/main.py +++ b/checkpoint/main.py @@ -138,33 +138,40 @@ if __name__ == "__main__": parser.add_argument('--train_url', required=False, default=None, help='Location of training outputs.') args, unknown = parser.parse_known_args() + COPY_OTHER = False if args.data_url.startswith('s3'): import moxing - # WAY1: copy dataset from your own OBS bucket. - # moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST') + # WAY1: copy dataset from your own OBS bucket to container/cache. + moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/') # WAY2: copy dataset from other's OBS bucket, which has been set public read or public read&write. - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket - moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', - server="obs.cn-north-4.myhuaweicloud.com") - # copy dataset from obs bucket to container/cache - moxing.file.copy_parallel(src_url="s3://share-course/dataset/MNIST/", dst_url='MNIST/') + # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket; + # moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', + # server="obs.cn-north-4.myhuaweicloud.com") + # moxing.file.copy_parallel(src_url="s3://share-course/dataset/MNIST/", dst_url='MNIST/') + # COPY_OTHER = True - args.data_url = 'MNIST' + data_path = 'MNIST' + else: + data_path = os.path.abspath(args.data_url) # 请先删除旧的checkpoint目录`ckpt` - train(args.data_url) + train(data_path) print('Checkpoints after first training:') print('\n'.join(sorted([x for x in os.listdir('ckpt') if x.startswith('lenet')]))) - resume_train(args.data_url) + resume_train(data_path) print('Checkpoints after resuming training:') print('\n'.join(sorted([x for x in os.listdir('ckpt') if x.startswith('lenet')]))) - infer(args.data_url) + infer(data_path) if args.data_url.startswith('s3'): import moxing # 将ckpt目录拷贝至OBS后,可在OBS的`args.train_url`目录下看到ckpt目录 + if COPY_OTHER: + raise Exception('='*10, 'Set your Access Key below and remove this line', '='*10) + moxing.file.set_auth(ak='Your own Access Key', sk='Your own Secret Access Key', + server="obs.cn-north-4.myhuaweicloud.com") moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) print('Copied checkpoints from ./ckpt to %s' % os.path.join(args.train_url, 'ckpt')) diff --git a/deeplabv3/README.md b/deeplabv3/README.md index 00b0907..2bc6828 100644 --- a/deeplabv3/README.md +++ b/deeplabv3/README.md @@ -1,7 +1,7 @@ -# 构建语义分割网络模型应用 +# 语义分割 ## 实验介绍 -本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC 2012数据集上训练deeplabv3网络模型。本实验参考MindSpore开源仓库model_zoo中的[deeplabv3 Example](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo/deeplabv3) 模型案例。 +本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC2012数据集上训练deeplabv3网络模型。本实验使用了MindSpore开源仓库model_zoo中的[deeplabv3](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo/deeplabv3)模型案例。 ## deeplabv3简要介绍 deeplabv1和deeplabv2,即带孔卷积(atrous convolution), 能够明确地调整filters的感受野,并决定DNN计算得到特征的分辨率。 @@ -9,25 +9,25 @@ deeplabv3中提出 Atrous Spatial Pyramid Pooling(ASPP)模块, 挖掘不同尺 详细介绍参考论文:http://arxiv.org/abs/1706.05587 。 ## 实验目的 -* 了解如何使用MindSpore加载常用的PASCAL VOC 2012数据集。 +* 了解如何使用MindSpore加载常用的PASCAL VOC2012数据集。 * 了解MindSpore的model_zoo模块,以及如何使用model_zoo中的模型。 * 了解deeplabv3这类语义分割模型的基本结构和编程方法。 ## 预备知识 * 熟练使用Python,了解Shell及Linux操作系统基本知识。 * 具备一定的深度学习理论知识,如Encoder、Decoder、损失函数、优化器,训练策略、Checkpoint等。 -* 了解华为云的基本使用方法,包括[OBS(对象存储)](https://www.huaweicloud.com/product/obs.html) 、[ModelArts(AI开发平台](https://www.huaweicloud.com/product/modelarts.html) 、[训练作业](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0046.html) 等功能。华为云官网:https://www.huaweicloud.com。 +* 了解华为云的基本使用方法,包括[OBS(对象存储)](https://www.huaweicloud.com/product/obs.html)、[ModelArts(AI开发平台)](https://www.huaweicloud.com/product/modelarts.html)、[训练作业](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0046.html)等功能。华为云官网:https://www.huaweicloud.com。 * 了解并熟悉MindSpore AI计算框架,MindSpore官网:https://www.mindspore.cn/。 ## 实验环境 * MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套)。 -* 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。。 +* 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。。 ## 实验准备 ### 创建OBS桶 -本实验需要使用华为云OBS存储脚本和数据集,可以参考[快速通过OBS控制台上传下载文件](https://support.huaweicloud.com/qs-obs/obs_qs_0001.html) 了解使用OBS创建桶、上传文件、下载文件的使用方法。当数据集大时,可以使用[OBS Browser+](https://support.huaweicloud.com/browsertg-obs/obs_03_1000.html) 。 +本实验需要使用华为云OBS存储脚本和数据集,可以参考[快速通过OBS控制台上传下载文件](https://support.huaweicloud.com/qs-obs/obs_qs_0001.html)了解使用OBS创建桶、上传文件、下载文件的使用方法。当数据集较大时,可以使用[OBS Browser+](https://support.huaweicloud.com/browsertg-obs/obs_03_1000.html)。 -> 提示: 华为云新用户使用OBS时通常需要创建和配置“访问密钥”,可以在使用OBS时根据提示完成创建和配置。也可以[参考获取访问密钥并完成ModelArts全局配置](https://support.huaweicloud.com/prepare-modelarts/modelarts_08_0002.html) 获取并配置访问密钥。 +> 提示: 华为云新用户使用OBS时通常需要创建和配置“访问密钥”,可以在使用OBS时根据提示完成创建和配置。也可以[参考获取访问密钥并完成ModelArts全局配置](https://support.huaweicloud.com/prepare-modelarts/modelarts_08_0002.html)获取并配置访问密钥。 打开[OBS控制台](https://storage.huaweicloud.com/obs/?region=cn-north-4&locale=zh-cn#/obs/manager/buckets),点击右上角的“创建桶”按钮进入桶配置页面,创建OBS桶的参考配置如下: @@ -40,24 +40,24 @@ deeplabv3中提出 Atrous Spatial Pyramid Pooling(ASPP)模块, 挖掘不同尺 * 企业项目、标签等配置:免 ## 数据集准备 -[Pascal VOC2012数据集](https://blog.csdn.net/haoji007/article/details/80361587) 主要是针对视觉任务中监督学习提供标签数据,它有二十个类别。主要有四个大类别,分别是人、常见动物、交通车辆、室内家具用品。这里只说与图像分割(segmentation)有关的信息,本用例使用已去除分割标注的颜色,仅保留了分割任务的数据集。VOC2012[官网地址](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html) ,[官方下载地址](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar) 。 +[Pascal VOC2012数据集](https://blog.csdn.net/haoji007/article/details/80361587)主要是针对视觉任务中监督学习提供标签数据,它有二十个类别。主要有四个大类别,分别是人、常见动物、交通车辆、室内家具用品。这里只说与图像分割(segmentation)有关的信息,本用例使用已去除分割标注的颜色,仅保留了分割任务的数据集。VOC2012[官网地址](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html),[官方下载地址](http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar)。 本实验指导的数据集可通过如下方式获取: -* 方式一:针对教学使用的[实验指导](https://gitee.com/mindspore/course)和 [模型案例](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo) ,为了节省下载和处理数据集的时间,我们提前准备好了数据集,可直接通过上述的[华为云OBS](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/voc2012.zip) (已去除分割标注的颜色,仅保留了分割任务的数据)获取。 -* 方式二:使用moxing接口拷贝数据集,即在ModelArts上使用moxing的拷贝功能直接拷贝共享的数据集到执行容器中: +* 方式一,针对本实验和[模型案例](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo),为了节省下载和处理数据集的时间,我们提前准备好了数据集,从华为云OBS中下载[VOC2012数据集](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/voc2012.zip)(已去除分割标注的颜色,仅保留了分割任务的数据)并解压。 +* 方式二,参考[checkpoint(模型的保存和加载)](../checkpoint)实验,拷贝他人共享的OBS桶中的数据集。 ``` import moxing - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', server="obs.cn-north-4.myhuaweicloud.com") - - # copy dataset from obs to container/cache - moxing.file.copy_parallel(src_url="s3://share-course/dataset/voc2012/", dst_url='/cache/data_path') + moxing.file.copy_parallel(src_url="s3://share-course/dataset/voc2012/", dst_url='voc2012/') ``` - -另外,本实验采用fine-tune的训练方式,为了节省训练时间,我们提前准备好了预训练的[checkpoint文件](https://share-course.obs.myhuaweicloud.com/checkpoint/deeplabv3/deeplabv3_train_14-1_1.ckpt) ,方便直接获取使用。 +* 方式三,从官网下载数据集并进行数据集预处理: + - [去除数据集分割标注的颜色](https://github.com/tensorflow/models/blob/master/research/deeplab/datasets/remove_gt_colormap.py); + - 通过数据集中的`VOCdevkit/VOC2012/ImageSets/Segmentation/train.txt, VOCdevkit/VOC2012/ImageSets/Segmentation/train.txt`过滤得到图像分割任务的训练集和验证集。 + +另外,本实验采用fine-tune的训练方式,为了节省训练时间,我们提前准备好了预训练的[checkpoint文件](https://share-course.obs.myhuaweicloud.com/checkpoint/deeplabv3/deeplabv3_train_14-1_1.ckpt),方便直接获取使用。 ## 脚本准备 -从MindSpore开源仓库model_zoo中下载[deeplabv3模型案例](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo/deeplabv3) 。从[课程gitee仓库](https://gitee.com/mindspore/course) 中下载相关执行脚本。 +从MindSpore开源仓库model_zoo中下载[deeplabv3模型案例](https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo/deeplabv3)。从[课程gitee仓库](https://gitee.com/mindspore/course)中下载相关执行脚本。 ## 上传文件 点击新建的OBS桶名,再打开“对象”标签页,通过“上传对象”、“新建文件夹”等功能,将脚本和数据集上传到OBS桶中,可参考如下组织形式: @@ -170,7 +170,6 @@ class LossCallBack(Callback): cb_params = run_context.original_args() print("epoch: {}, step: {}, outputs are {}".format(cb_params.cur_epoch_num, cb_params.cur_step_num, str(cb_params.net_outputs))) - ``` 定义model_fine_tune函数,用于对网络模型进行微调: @@ -208,7 +207,6 @@ class LossCallBack(Callback): opt = Momentum(filter(lambda x: 'beta' not in x.name and 'gamma' not in x.name and 'depth' not in x.name and 'bias' not in x.name, net.trainable_params()), learning_rate=config.learning_rate, momentum=config.momentum, weight_decay=config.weight_decay) model = Model(net, loss, opt) model.train(config.epoch_size, train_dataset, callback) - ``` >提示:训练过程中,可通过修改上述示例代码路径下的deeplabv3_example/deeplabv3/src/config.py文件的相关参数来提升训练精度,本实验指导采用默认配置。 @@ -272,7 +270,6 @@ class MiouPrecision(Metric): mIoU = np.nanmean(self._mIoU) print('mIoU = {}'.format(mIoU)) return mIoU - ``` 模型完整推理过程: @@ -298,6 +295,7 @@ eval_dataset = create_dataset(args_opt, data_path, config.epoch_size, config.bat mIoU = 0.6148479926928656 ``` +### 适配训练作业 由于ModelArts创建训练作业时,运行参数会通过脚本传参的方式输入给脚本代码,脚本必须解析传参才能在代码中使用相应参数。如data_url和train_url,分别对应数据存储路径(OBS路径)和训练输出路径(OBS路径)。脚本需对传参进行解析后赋值到args_opt变量里,在后续代码里可以使用。 ```python parser = argparse.ArgumentParser(description="deeplabv3 training") @@ -306,29 +304,30 @@ parser.add_argument('--data_url', required=True, default=None, help='Train data parser.add_argument('--train_url', required=True, default=None, help='Train data output url') parser.add_argument('--checkpoint_url', default=None, help='Checkpoint path') args_opt = parser.parse_args() - ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器,可参考本实验: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS中存储的数据集和Checkpoint拷贝至执行容器: ```python import moxing as mox mox.file.copy_parallel(src_url=args_opt.data_url, dst_url='voc2012/') mox.file.copy_parallel(src_url=args_opt.checkpoint_url, dst_url='checkpoint/') ``` -模型训练使用的是拷贝至当前执行容器路径下的相应文件: +模型训练使用的是拷贝至执行容器中的数据集和Checkpoint: ```python data_path = "./voc2012" train_checkpoint_path = "./checkpoint/deeplabv3_train_14-1_1.ckpt" #预训练的ckpt ``` ->提示:如若需将训练输出(如模型Checkpoint文件)从执行容器拷贝至OBS,请参考: ->```python ->import moxing -># dst_url形如's3://OBS/PATH',将ckpt目录拷贝至OBS后,可在OBS的`args_opt.train_url`目录下看到ckpt目录 ->moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args_opt.train_url, 'ckpt')) ->``` +如需将训练输出(如模型Checkpoint文件)从执行容器拷贝至OBS,请参考: -## 创建训练作业 +```python +import moxing +# dst_url形如's3://OBS/PATH',将Checkpoint拷贝至OBS后,可在OBS的`args_opt.train_url`目录下看到Checkpoint +moxing.file.copy_parallel(src_url='checkpoint_deeplabv3-6_732.ckpt', + dst_url=os.path.join(args_opt.train_url, 'checkpoint_deeplabv3-6_732.ckpt')) +``` + +### 创建训练作业 可以参考[使用常用框架训练模型](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0238.html)来创建并启动训练作业。 打开[ModelArts控制台-训练管理-训练作业](https://console.huaweicloud.com/modelarts/?region=cn-north-4#/trainingJobs),点击“创建”按钮进入训练作业配置页面,创建训练作业的参考配置: @@ -347,25 +346,14 @@ train_checkpoint_path = "./checkpoint/deeplabv3_train_14-1_1.ckpt" #预训练的 1. 在训练作业列表里可以看到刚创建的训练作业,在训练作业页面可以看到版本管理。 2. 点击运行中的训练作业,在展开的窗口中可以查看作业配置信息,以及训练过程中的日志,日志会不断刷新,等训练作业完成后也可以下载日志到本地进行查看。 -> 提示:ModelArts提供了[PyCharm ToolKit工具](https://support.huaweicloud.com/tg-modelarts/modelarts_15_0003.html) ,方便基于MindSpore框架的脚本开发和调试; +> 提示:ModelArts提供了[PyCharm ToolKit工具](https://support.huaweicloud.com/tg-modelarts/modelarts_15_0003.html),方便基于MindSpore框架的脚本开发和调试; > 在使用PyCharm ToolKit工具进行传参训练时,注意参数key-value的书写格式,如本实验设置:checkpoint_url=s3://ms-course(桶名称)/deeplabv3_example/checkpoint/ 。 -> 或者可用ModelArts下的开发环境[Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html) 进行基于MindSpore框架的脚本开发和调试。 +> 或者可用ModelArts下的开发环境[Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html)进行基于MindSpore框架的脚本开发和调试。 ## 实验结论 -本实验主要介绍使用MindSpore在voc2012数据集上训练和推理deeplabv3网络模型,了解以下知识点: -* 加载VOC2012数据集并进行相关数据增强等预处理操作; +本实验主要介绍使用MindSpore在VOC2012数据集上训练和推理deeplabv3网络模型,包含以下知识点: +* 加载VOC2012数据集并进行数据处理; * 了解deeplabv3网络模型结构及其在MindSpore框架下的实现; * 使用fine-tune功能对模型进行微调; * 使用自定义Callback实现性能监测; * 使用自定义的Miou指标进行模型推理性能评估。 - - - - - - - - - - - diff --git a/experiment_4/4-Natural_Language_Processing.md b/experiment_4/4-Natural_Language_Processing.md index 8257e56..a50c5ec 100644 --- a/experiment_4/4-Natural_Language_Processing.md +++ b/experiment_4/4-Natural_Language_Processing.md @@ -27,7 +27,7 @@ BERT模型包含由不同隐含层数(number hidden layers)和隐含层单 ## 实验环境 - MindSpore 0.2.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -224,7 +224,7 @@ parser.add_argument('--num_epochs', type=int, default=1, help='Number of trainin args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing as mox diff --git a/feedforward/README.md b/feedforward/README.md index 5bba825..3f7384a 100644 --- a/feedforward/README.md +++ b/feedforward/README.md @@ -1,4 +1,4 @@ -# 前馈网络 +# 前馈神经网络 ## 实验介绍 @@ -20,7 +20,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -472,12 +472,11 @@ parser.add_argument('--train_url', required=True, default=None, help='Location o args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: - -拷贝自己账户下OBS桶内的数据集。 +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing +# src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径 moxing.file.copy_parallel(src_url=args.data_url, dst_url='Fashion-MNIST/') ``` @@ -485,6 +484,7 @@ moxing.file.copy_parallel(src_url=args.data_url, dst_url='Fashion-MNIST/') ```python import moxing +# src_url为执行容器中的路径,dst_url形如's3://OBS/PATH',目录若不存在则会新建 moxing.file.copy_parallel(src_url='model_fashion', dst_url=args.train_url) ``` diff --git a/knn/README.md b/knn/README.md index a572d04..5245467 100644 --- a/knn/README.md +++ b/knn/README.md @@ -1,4 +1,4 @@ -# K Nearest Neighbor +# K近邻算法 ## 实验介绍 @@ -25,7 +25,7 @@ K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非 ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -281,10 +281,11 @@ parser.add_argument('--data_url', required=True, default=None, help='Location of args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing +# src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径,两者皆为目录/皆为文件 moxing.file.copy_parallel(src_url=os.path.join(args.data_url, 'wine.data'), dst_url='wine.data') ``` diff --git a/lenet5/README.md b/lenet5/README.md index c421358..a8001d8 100644 --- a/lenet5/README.md +++ b/lenet5/README.md @@ -2,7 +2,7 @@ ## 实验介绍 -LeNet5 + MINST被誉为深度学习领域的“Hello world”。本实验主要介绍使用MindSpore在MNIST数据集上开发和训练一个LeNet5模型,并验证模型精度。 +LeNet5 + MNIST被誉为深度学习领域的“Hello world”。本实验主要介绍使用MindSpore在MNIST手写数字数据集上开发和训练一个LeNet5模型,并验证模型精度。 ## 实验目的 @@ -20,7 +20,7 @@ LeNet5 + MINST被誉为深度学习领域的“Hello world”。本实验主要 ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore; +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore; - Windows/Ubuntu x64笔记本,NVIDIA GPU服务器,或Atlas Ascend服务器等。 ## 实验准备 @@ -141,6 +141,7 @@ def create_dataset(data_dir, training=True, batch_size=32, resize=(32, 32), 对其中几张图片进行可视化,可以看到图片中的手写数字,图片的大小为32x32。 ```python +import matplotlib.pyplot as plt ds = create_dataset('MNIST', training=False) data = ds.create_dict_iterator().get_next() images = data['image'] @@ -251,12 +252,13 @@ parser.add_argument('--train_url', required=True, default=None, help='Location o args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: - 方式一,拷贝自己账户下OBS桶内的数据集。 ```python import moxing + # src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径 moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/') ``` @@ -264,21 +266,12 @@ MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing ```python import moxing - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket + # 设置moxing/obs认证信息, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', server="obs.cn-north-4.myhuaweicloud.com") - # copy dataset from obs bucket to container/cache moxing.file.copy_parallel(src_url="s3://share-course/dataset/MNIST/", dst_url='MNIST/') ``` -如需将训练输出(如模型Checkpoint)从执行容器拷贝至OBS,请参考: - -```python -import moxing -# dst_url形如's3://OBS/PATH',将ckpt目录拷贝至OBS后,可在OBS的`args.train_url`目录下看到ckpt目录 -moxing.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) -``` - ### 创建训练作业 可以参考[使用常用框架训练模型](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0238.html)来创建并启动训练作业。 diff --git a/lenet5/main.py b/lenet5/main.py index f7545ea..8a95191 100644 --- a/lenet5/main.py +++ b/lenet5/main.py @@ -80,16 +80,17 @@ if __name__ == "__main__": if args.data_url.startswith('s3'): import moxing - # WAY1: copy dataset from your own OBS bucket. + # WAY1: copy dataset from your own OBS bucket to container/cache. # moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST') # WAY2: copy dataset from other's OBS bucket, which has been set public read or public read&write. - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket + # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket; moxing.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', server="obs.cn-north-4.myhuaweicloud.com") - # copy dataset from obs bucket to container/cache moxing.file.copy_parallel(src_url="s3://share-course/dataset/MNIST/", dst_url='MNIST/') - args.data_url = 'MNIST' + data_path = 'MNIST' + else: + data_path = os.path.abspath(args.data_url) - train(args.data_url) + train(data_path) diff --git a/linear_regression/README.md b/linear_regression/README.md index e1877da..661139f 100644 --- a/linear_regression/README.md +++ b/linear_regression/README.md @@ -25,7 +25,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 diff --git a/logistic_regression/README.md b/logistic_regression/README.md index 0ae3984..a6d5542 100644 --- a/logistic_regression/README.md +++ b/logistic_regression/README.md @@ -25,7 +25,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -258,10 +258,11 @@ parser.add_argument('--data_url', required=True, default=None, help='Location of args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing +# src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径,两者皆为目录/皆为文件 moxing.file.copy_parallel(src_url=os.path.join(args.data_url, 'iris.data'), dst_url='iris.data') ``` diff --git a/optimizer/README.md b/optimizer/README.md index d099eb2..e89eb35 100644 --- a/optimizer/README.md +++ b/optimizer/README.md @@ -1,4 +1,4 @@ -# 优化实验 +# 优化器实验 ## 实验介绍 @@ -25,7 +25,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -778,10 +778,11 @@ parser.add_argument('--train_url', required=True, default=None, help='Location o args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing as mox +# src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径 mox.file.copy_parallel(src_url=os.path.join(args.data_url, 'iris.data'), dst_url='iris.data') ``` @@ -789,6 +790,7 @@ mox.file.copy_parallel(src_url=os.path.join(args.data_url, 'iris.data'), dst_url ```python import moxing as mox +# src_url为执行容器中的路径,dst_url形如's3://OBS/PATH',目录若不存在则会新建 mox.file.copy_parallel(src_url='model_iris', dst_url=args.train_url) ``` diff --git a/resnet50/README.md b/resnet50/README.md index 1c53e91..4dba2fa 100644 --- a/resnet50/README.md +++ b/resnet50/README.md @@ -1,4 +1,4 @@ -

计算机视觉应用

+# 图片分类 ## 实验介绍 @@ -20,7 +20,7 @@ ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -446,22 +446,24 @@ parser.add_argument('--num_epochs', type=int, default=90, help='Number of traini args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。 +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。 **方式一** -- 拷贝自己账户下OBS桶内的数据集至执行容器 +- 训练开始前,拷贝自己账户下OBS桶内的数据集至执行容器。 ```python import moxing as mox + # src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径 mox.file.copy_parallel(src_url=args.data_url, dst_url='cifar10/') ``` - -- 如需将训练输出(如模型Checkpoint)从执行容器拷贝至自己的OBS,请参考: + +- 如需将训练输出(如模型Checkpoint)从执行容器拷贝至自己的OBS中,请参考: ```python import moxing as mox - mox.file.copy_parallel(src_url='output', dst_url='s3://OBS/PATH') + # dst_url形如's3://OBS/PATH',将ckpt目录拷贝至OBS后,可在OBS的`args.train_url`目录下看到ckpt目录 + mox.file.copy_parallel(src_url='ckpt', dst_url=os.path.join(args.train_url, 'ckpt')) ``` **方式二** @@ -470,14 +472,13 @@ MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing ```python import moxing as mox - # set moxing/obs auth info, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket + # 设置他人账户的ModelArts密钥, ak:Access Key Id, sk:Secret Access Key, server:endpoint of obs bucket mox.file.set_auth(ak='VCT2GKI3GJOZBQYJG5WM', sk='t1y8M4Z6bHLSAEGK2bCeRYMjo2S2u0QBqToYbxzB', server="obs.cn-north-4.myhuaweicloud.com") - # copy dataset from obs bucket to container/cache mox.file.copy_parallel(src_url="s3://share-course/dataset/cifar10/", dst_url='cifar10/') ``` -- 通过set_auth()设置了他人账户的密钥,则再通过set_auth()设置自己账户的密钥,然后再行拷贝。 +- 如需将训练输出(如模型Checkpoint)从执行容器拷贝至自己的OBS桶中,先通过`set_auth()`设置自己账户的密钥,然后再行拷贝。 ```python import moxing as mox diff --git a/softmax_regression/README.md b/softmax_regression/README.md index defa042..3c3cb0c 100644 --- a/softmax_regression/README.md +++ b/softmax_regression/README.md @@ -23,7 +23,7 @@ Logistic函数针对的是二分类问题,而Softmax解决的是多分类问 ## 实验环境 - MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); -- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 +- 华为云ModelArts(控制台左上角选择“华北-北京四”):ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。 ## 实验准备 @@ -243,10 +243,11 @@ parser.add_argument('--data_url', required=True, default=None, help='Location of args, unknown = parser.parse_known_args() ``` -MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过ModelArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用: ```python import moxing +# src_url形如's3://OBS/PATH',为OBS桶中数据集的路径,dst_url为执行容器中的路径,两者皆为目录/皆为文件 moxing.file.copy_parallel(src_url=os.path.join(args.data_url, 'iris.data'), dst_url='iris.data') ``` -- GitLab