Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MindSpore
course
提交
d5b5c3a3
C
course
项目概览
MindSpore
/
course
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
course
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
d5b5c3a3
编写于
8月 21, 2020
作者:
D
dongyonghan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update moxing copy, description
上级
af12ca66
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
125 addition
and
115 deletion
+125
-115
checkpoint/README.md
checkpoint/README.md
+28
-13
checkpoint/main.py
checkpoint/main.py
+18
-11
deeplabv3/README.md
deeplabv3/README.md
+33
-45
experiment_4/4-Natural_Language_Processing.md
experiment_4/4-Natural_Language_Processing.md
+2
-2
feedforward/README.md
feedforward/README.md
+5
-5
knn/README.md
knn/README.md
+4
-3
lenet5/README.md
lenet5/README.md
+6
-13
lenet5/main.py
lenet5/main.py
+6
-5
linear_regression/README.md
linear_regression/README.md
+1
-1
logistic_regression/README.md
logistic_regression/README.md
+3
-2
optimizer/README.md
optimizer/README.md
+5
-3
resnet50/README.md
resnet50/README.md
+11
-10
softmax_regression/README.md
softmax_regression/README.md
+3
-2
未找到文件。
checkpoint/README.md
浏览文件 @
d5b5c3a3
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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桶中。
### 创建训练作业
...
...
checkpoint/main.py
浏览文件 @
d5b5c3a3
...
...
@@ -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'
))
deeplabv3/README.md
浏览文件 @
d5b5c3a3
#
构建语义分割网络模型应用
#
语义分割
## 实验介绍
本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC
2012数据集上训练deeplabv3网络模型。本实验参考MindSpore开源仓库model_zoo中的
[
deeplabv3 Example
](
https://gitee.com/mindspore/mindspore/tree/r0.5/model_zoo/deeplabv3
)
模型案例。
本实验主要介绍使用MindSpore深度学习框架在PASCAL VOC
2012数据集上训练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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器,可参考本实验
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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指标进行模型推理性能评估。
experiment_4/4-Natural_Language_Processing.md
浏览文件 @
d5b5c3a3
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的moxing框架与OBS交互。将OBS桶中的数据拷贝至执行容器中,供MindSpore使用
:
```
python
import
moxing
as
mox
...
...
feedforward/README.md
浏览文件 @
d5b5c3a3
# 前馈网络
# 前馈
神经
网络
## 实验介绍
...
...
@@ -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
)
```
...
...
knn/README.md
浏览文件 @
d5b5c3a3
# 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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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'
)
```
...
...
lenet5/README.md
浏览文件 @
d5b5c3a3
...
...
@@ -2,7 +2,7 @@
## 实验介绍
LeNet5 + M
INST被誉为深度学习领域的“Hello world”。本实验主要介绍使用MindSpore在MNIST
数据集上开发和训练一个LeNet5模型,并验证模型精度。
LeNet5 + M
NIST被誉为深度学习领域的“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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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
)
来创建并启动训练作业。
...
...
lenet5/main.py
浏览文件 @
d5b5c3a3
...
...
@@ -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
)
linear_regression/README.md
浏览文件 @
d5b5c3a3
...
...
@@ -25,7 +25,7 @@
## 实验环境
-
MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套);
-
华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。
-
华为云ModelArts
(控制台左上角选择“华北-北京四”)
:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。
## 实验准备
...
...
logistic_regression/README.md
浏览文件 @
d5b5c3a3
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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'
)
```
...
...
optimizer/README.md
浏览文件 @
d5b5c3a3
#
优化
实验
#
优化器
实验
## 实验介绍
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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
)
```
...
...
resnet50/README.md
浏览文件 @
d5b5c3a3
<h1
style=
"text-align:center"
>
计算机视觉应用
</h1>
# 图片分类
## 实验介绍
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API
与OBS交互。
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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
...
...
softmax_regression/README.md
浏览文件 @
d5b5c3a3
...
...
@@ -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数据的接口,需要通过Mo
Xing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器
:
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过Mo
delArts自带的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'
)
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录