提交 4b8b5d29 编写于 作者: D dyonghan 提交者: Gitee

!25 modified data download method, modelarts desc

Merge pull request !25 from dyonghan/master
......@@ -54,7 +54,7 @@
MNIST是一个手写数字数据集,训练集包含60000张手写数字,测试集包含10000张手写数字,共10类。MNIST数据集的官网:[THE MNIST DATABASE](http://yann.lecun.com/exdb/mnist/)
从MNIST官网下载如下4个文件到本地并解压:
- 途径一,从MNIST官网下载如下4个文件到本地并解压:
```
train-images-idx3-ubyte.gz: training set images (9912422 bytes)
......@@ -63,6 +63,8 @@ t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
```
- 途径二,从华为云OBS中下载[MNIST数据集](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/MNIST.zip)并解压。
### 脚本准备
[课程gitee仓库](https://gitee.com/mindspore/course)上下载本实验相关脚本。
......@@ -87,7 +89,7 @@ checkpoint
### 创建Notebook
可以参考[创建并打开Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html)来创建并打开本实验的Notebook脚本。
ModelArts Notebook资源池较小,且每个运行中的Notebook会一直占用Device资源不释放,不适合大规模并发使用。可以参考[创建并打开Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html)来创建并打开本实验的Notebook脚本。
创建Notebook的参考配置:
......@@ -106,7 +108,7 @@ checkpoint
> **提示:** 上述数据集和脚本的准备工作也可以在Notebook环境中完成,在Jupyter Notebook文件列表页面,点击右上角的"New"->"Terminal",进入Notebook环境所在终端,进入`work`目录,可以使用常用的linux shell命令,如`wget, gzip, tar, mkdir, mv`等,完成数据集和脚本的下载和准备。
> **提示:** 从上至下阅读提示并执行代码框进行体验。代码框执行过程中左侧呈现[\*],代码框执行完毕后左侧呈现如[1],[2]等。请等上一个代码框执行完毕后再执行下一个代码框。
> **提示:** 可将如下每段代码拷贝到Notebook代码框/Cell中,从上至下阅读提示并执行代码框进行体验。代码框执行过程中左侧呈现[\*],代码框执行完毕后左侧呈现如[1],[2]等。请等上一个代码框执行完毕后再执行下一个代码框。
导入MindSpore模块和辅助模块:
......@@ -389,6 +391,14 @@ infer('MNIST')
## 实验步骤(ModelArts训练作业)
除了Notebook,ModelArts还提供了训练作业服务。相比Notebook,训练作业资源池更大,且具有作业排队等功能,适合大规模并发使用。使用训练作业时,也会有修改代码和调试的需求,有如下三个方案:
1. 在本地修改代码后重新上传;
2. 使用[PyCharm ToolKit](https://support.huaweicloud.com/tg-modelarts/modelarts_15_0001.html)配置一个本地Pycharm+ModelArts的开发环境,便于上传代码、提交训练作业和获取训练日志。
3. 在ModelArts上创建Notebook,然后设置[Sync OBS功能](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0038.html),可以在线修改代码并自动同步到OBS中。因为只用Notebook来编辑代码,所以创建CPU类型最低规格的Notebook就行。
### 适配训练作业
创建训练作业时,运行参数会通过脚本传参的方式输入给脚本代码,脚本必须解析传参才能在代码中使用相应参数。如data_url和train_url,分别对应数据存储路径(OBS路径)和训练输出路径(OBS路径)。脚本对传参进行解析后赋值到`args`变量里,在后续代码里可以使用。
......@@ -403,10 +413,23 @@ args, unknown = parser.parse_known_args()
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器:
```python
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/')
```
- 途径一,拷贝自己账户下OBS桶内的数据集。
```python
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/')
```
- 途径二,拷贝他人账户下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
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,请参考:
......@@ -445,7 +468,7 @@ MindSpore还支持在本地CPU/GPU/Ascend环境上运行,如Windows/Ubuntu x64
在Windows/Ubuntu x64笔记本上运行实验:
```shell script
vim main.py # 将第23行的context设置为`device_target='CPU'`
# 编辑main.py 将第23行的context设置为`device_target='CPU'`
python main.py --data_url=D:\dataset\MNIST
```
......
......@@ -140,7 +140,17 @@ if __name__ == "__main__":
if args.data_url.startswith('s3'):
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST')
# WAY1: copy dataset from your own OBS bucket.
# 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/')
args.data_url = 'MNIST'
# 请先删除旧的checkpoint目录`ckpt`
......
......@@ -47,7 +47,7 @@ K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非
### 数据准备
Wine数据集是模式识别最著名的数据集之一。这些数据是对来自意大利同一地区但来自三个不同品种的葡萄酒进行化学分析的结果。分析了三种葡萄酒中每种所含13种成分的量。这些13种属性是
Wine数据集是模式识别最著名的数据集之一,Wine数据集的官网:[Wine Data Set](http://archive.ics.uci.edu/ml/datasets/Wine)。这些数据是对来自意大利同一地区但来自三个不同品种的葡萄酒进行化学分析的结果。数据集分析了三种葡萄酒中每种所含13种成分的量。这些13种属性是
1. Alcohol,酒精
2. Malic acid,苹果酸
......@@ -63,8 +63,11 @@ Wine数据集是模式识别最著名的数据集之一。这些数据是对来
12. OD280/OD315 of diluted wines,稀释酒的OD280/OD315
13. Proline,脯氨酸
在Wine数据集的官网[Wine Data Set](http://archive.ics.uci.edu/ml/datasets/Wine)上下载[wine.data](http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data)文件。
- 途径一,从Wine数据集官网下载[wine.data文件](http://archive.ics.uci.edu/ml/machine-learning-databases/wine/wine.data)
- 途径二,从华为云OBS中下载[wine.data文件](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/wine.data)
| Key | Value | Key | Value |
| :------------------------- | :------------- | :-------------------- | :--- |
| Data Set Characteristics: | Multivariate | Number of Instances: | 178 |
| Attribute Characteristics: | Integer, Real | Number of Attributes: | 13 |
| Associated Tasks: | Classification | Missing Values? | No |
......
......@@ -45,7 +45,7 @@ LeNet5 + MINST被誉为深度学习领域的“Hello world”。本实验主要
MNIST是一个手写数字数据集,训练集包含60000张手写数字,测试集包含10000张手写数字,共10类。MNIST数据集的官网:[THE MNIST DATABASE](http://yann.lecun.com/exdb/mnist/)
从MNIST官网下载如下4个文件到本地并解压:
- 途径一,从MNIST官网下载如下4个文件到本地并解压:
```
train-images-idx3-ubyte.gz: training set images (9912422 bytes)
......@@ -54,6 +54,8 @@ t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
```
- 途径二,从华为云OBS中下载[MNIST数据集](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/MNIST.zip)并解压。
### 脚本准备
[课程gitee仓库](https://gitee.com/mindspore/course)上下载本实验相关脚本。
......@@ -78,7 +80,7 @@ lenet5
### 创建Notebook
可以参考[创建并打开Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html)来创建并打开本实验的Notebook脚本。
ModelArts Notebook资源池较小,且每个运行中的Notebook会一直占用Device资源不释放,不适合大规模并发使用。可以参考[创建并打开Notebook](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0034.html)来创建并打开本实验的Notebook脚本。
创建Notebook的参考配置:
......@@ -97,7 +99,7 @@ lenet5
> **提示:** 上述数据集和脚本的准备工作也可以在Notebook环境中完成,在Jupyter Notebook文件列表页面,点击右上角的"New"->"Terminal",进入Notebook环境所在终端,进入`work`目录,可以使用常用的linux shell命令,如`wget, gzip, tar, mkdir, mv`等,完成数据集和脚本的下载和准备。
> **提示:** 从上至下阅读提示并执行代码框进行体验。代码框执行过程中左侧呈现[\*],代码框执行完毕后左侧呈现如[1],[2]等。请等上一个代码框执行完毕后再执行下一个代码框。
> **提示:** 可将如下每段代码拷贝到Notebook代码框/Cell中,从上至下阅读提示并执行代码框进行体验。代码框执行过程中左侧呈现[\*],代码框执行完毕后左侧呈现如[1],[2]等。请等上一个代码框执行完毕后再执行下一个代码框。
导入MindSpore模块和辅助模块:
......@@ -251,10 +253,23 @@ args, unknown = parser.parse_known_args()
MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器:
```python
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/')
```
- 途径一,拷贝自己账户下OBS桶内的数据集。
```python
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST/')
```
- 途径二,拷贝他人账户下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
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,请参考:
......@@ -293,7 +308,7 @@ MindSpore还支持在本地CPU/GPU/Ascend环境上运行,如Windows/Ubuntu x64
在Windows/Ubuntu x64笔记本上运行实验:
```shell script
vim main.py # 将第15行的context设置为`device_target='CPU'`
# 编辑main.py 将第15行的context设置为`device_target='CPU'`
python main.py --data_url=D:\dataset\MNIST
```
......
......@@ -12,7 +12,7 @@ from mindspore import nn
from mindspore.train import Model
from mindspore.train.callback import LossMonitor
context.set_context(mode=context.GRAPH_MODE, device_target='Ascend') # Ascend, CPU, GPU
context.set_context(mode=context.GRAPH_MODE, device_target='CPU') # Ascend, CPU, GPU
def create_dataset(data_dir, training=True, batch_size=32, resize=(32, 32),
......@@ -79,7 +79,17 @@ if __name__ == "__main__":
if args.data_url.startswith('s3'):
import moxing
moxing.file.copy_parallel(src_url=args.data_url, dst_url='MNIST')
# WAY1: copy dataset from your own OBS bucket.
# 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/')
args.data_url = 'MNIST'
train(args.data_url)
......@@ -47,7 +47,10 @@
### 数据准备
Iris数据集是模式识别最著名的数据集之一。数据集包含3类,每类50个实例,其中每个类都涉及一种鸢尾植物。 第一类与后两类可线性分离,后两类之间不能线性分离,所以本实验取前两类数据,做一个2分类数据集。在Iris数据集的官网[Iris Data Set](http://archive.ics.uci.edu/ml/datasets/Iris)上下载[iris.data](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)文件。
Iris数据集是模式识别最著名的数据集之一。数据集包含3类,每类50个实例,其中每个类都涉及一种鸢尾植物。 第一类与后两类可线性分离,后两类之间不能线性分离,所以本实验取前两类数据,做一个2分类数据集。Iris数据集的官网:[Iris Data Set](http://archive.ics.uci.edu/ml/datasets/Iris)
- 途径一,从Iris数据集官网下载[iris.data文件](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)
- 途径二,从华为云OBS中下载[iris.data文件](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/iris.data)
每个样本含有4个数值属性和一个类别属性:
1. sepal length in cm
......
......@@ -45,7 +45,10 @@ Logistic函数针对的是二分类问题,而Softmax解决的是多分类问
### 数据准备
Iris数据集是模式识别最著名的数据集之一。数据集包含3类,每类50个实例,其中每个类都涉及一种鸢尾植物。在Iris数据集的官网[Iris Data Set](http://archive.ics.uci.edu/ml/datasets/Iris)上下载[iris.data](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)文件。
Iris数据集是模式识别最著名的数据集之一。数据集包含3类,每类50个实例,其中每个类都涉及一种鸢尾植物。 第一类与后两类可线性分离,后两类之间不能线性分离,所以本实验取前两类数据,做一个2分类数据集。Iris数据集的官网:[Iris Data Set](http://archive.ics.uci.edu/ml/datasets/Iris)
- 途径一,从Iris数据集官网下载[iris.data文件](http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data)
- 途径二,从华为云OBS中下载[iris.data文件](https://share-course.obs.cn-north-4.myhuaweicloud.com/dataset/iris.data)
每个样本含有4个数值属性和一个类别属性:
1. sepal length in cm
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册