华为云AI开发平台ModelArts训练作业调试_云淘科技

创建在线训练作业前,可先通过创建本地训练作业来进行调试,可以参考案例“tensorflow_mlp_mnist_local_mode”(单击进入ModelArts控制台)。

示例代码

在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。

步骤1:创建本地训练作业。当“train_instance_type”为“local”时,表示创建的是本地训练作业,可以用来调试代码和参数。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from modelarts.session import Session
from modelarts.estimator import Estimator
from modelarts.environment import Environment
from modelarts.environment.conda_env import CondaDependencies

session = Session()
env = Environment("tensorflow_mlp_mnist")
cd = CondaDependencies.create(pip_packages=["tensorflow==1.13.1", "requests"], conda_packages=["python=3.6.2"])
env.conda = cd
src_local_path = "/home/ma-user/work/tensorflow_mlp_mnist_local_mode/train/"
train_file = "tensorflow_mlp_mnist.py"
estimator = Estimator(modelarts_session=session,
                      code_dir=src_local_path,            # 本地训练脚本目录
                      boot_file=train_file,               # 本地训练启动脚本目录
                      train_instance_type='local',        # 指定为本地训练
                      train_instance_count=1,             # 训练节点个数
                      environment=env)                    # 训练脚本运行的环境
job_instance = estimator.fit(wait=False, job_name='my_training_job')

步骤2:本地训练作业完成后,可以创建为在线训练作业。当“train_instance_type”为训练环境规格时,表示创建的是在线训练。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
from modelarts.session import Session
from modelarts.estimator import Estimator
from modelarts.environment import Environment
from modelarts.environment.conda_env import CondaDependencies

session = Session()
env = Environment("tensorflow_mlp_mnist")
cd = CondaDependencies.create(pip_packages=["tensorflow==1.13.1", "requests"], conda_packages=["python=3.6.2"])
env.conda = cd
src_local_path = "/home/ma-user/work/tensorflow_mlp_mnist_local_mode/train/"
train_file = "tensorflow_mlp_mnist.py"
estimator = Estimator(modelarts_session=session,
                      code_dir=src_local_path,                          # 训练脚本目录
                      boot_file=train_file,                             # 训练启动脚本目录
                      train_instance_type='modelarts.vm.cpu.2u',        # 在线训练
                      train_instance_count=1,                           # 训练节点个数
                      environment=env)                                  # 训练脚本运行的环境
job_instance = estimator.fit(wait=False, job_name='my_training_job')

参数说明

表1 Environment参数说明

参数

是否必选

类型

说明

name

String

环境名称。

conda

CondaDependencies

conda环境,具体请参见表2。

表2 CondaDependencies参数说明

参数

是否必选

类型

说明

channels

List

python包的下载源。

pip_packages

List

conda虚拟环境需要使用的python包,如tensorflow,pillow等。

conda_packages

List

conda虚拟环境需要使用的conda包,如指定python版本。

表3 Estimator请求参数说明

参数

是否必选

参数类型

描述

modelarts_session

Object

会话对象,初始化方法请参见Session鉴权。

train_instance_count

Int

训练作业计算节点个数。

code_dir

String

训练作业的代码目录,如“/bucket/src/”。当填入model_name时不需要填写。

boot_file

String

训练作业的代码启动文件,需要在代码目录下,如“/bucket/src/boot.py”。当填入model_name时不需要填写。

model_name

String

训练作业的内置算法模型名称。填入model_name后app_url与boot_file_url不需填写,framework_type和framework_version也不需要填写。“model_name”请从查询预置算法 接口中获取。

output_path

String

训练作业的输出位置。

hyperparameters

JSON Array

训练作业的运行参数,为label-value格式,其中lable和value的值均为String类型;当为自定义镜像训练作业的时候,此参数为容器环境变量。

log_url

String

训练作业的日志OBS输出路径URL,默认为空。如:“/usr/log/”。

train_instance_type

String

训练作业选择的资源规格。若选择在训练平台训练,请从查询资源规格列表接口获取。

framework_type

String

训练作业选择的引擎规格。请从查询引擎规格列表接口获取引擎规格。当填入model_name时不需要填写。

framework_version

String

训练作业选择的引擎版本。请从查询引擎规格列表接口获取引擎版本。当填入model_name时不需要填写。

job_description

String

训练作业的描述。

user_image_url

String

自定义镜像训练作业的自定义镜像的SWR-URL。如:“100.125.5.235:20202/jobmng/custom-cpu-base:1.0”。

user_command

String

自定义镜像训练作业的自定义镜像的容器的启动命令。形式为:“bash /home/work/run_train.sh python /home/work/user-job-dir/app/train.py {python_file_parameter}” 。

pool_id

String

训练作业选择的资源池ID,可在ModelArts管理控制台,单击左侧“专属资源池”,在专属资源池列表中查看资源池ID。

表4 fit请求参数说明

参数

是否必选

参数类型

描述

inputs

String

训练作业的数据存储位置。

inputs和(dataset_id、dataset_version_id)、data_source三者不可同时出现,但必须有其一。

本地训练只支持该参数。

dataset_id

String

训练作业的数据集ID。获取数据集ID,请参见查看数据集的基本信息。

应与dataset_version_id同时出现,但不可与inputs同时出现。

dataset_version_id

String

训练作业的数据集版本ID。获取数据集版本ID,请参见查看数据集的基本信息。

应与dataset_id同时出现,但不可与inputs同时出现。

wait

Boolean

是否等待训练作业结束,默认为False。

job_name

String

训练作业的名称,支持[a-zA-Z0-9_-]{1,64}。若不填,则会动态生成一个job_name。

父主题: 训练作业

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家