创建训练作业
在训练平台训练方式中,如果训练失败的话,可以到训练平台或调用查询训练作业日志查看详细的日志信息。
示例代码
在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。
- 示例一:使用OBS存储位置创建训练作业
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator( modelarts_session=session, framework_type='PyTorch', # AI引擎名称 framework_version='PyTorch-1.0.0-python3.6', # AI引擎版本 code_dir='/bucket/src/', # 训练脚本目录 boot_file='/bucket/src/pytorch_sentiment.py', # 训练启动脚本目录 log_url='/bucket/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/bucket/output/', # 训练输出目录 train_instance_type='modelarts.vm.cpu.2u', # 训练环境规格 train_instance_count=1, # 训练节点个数 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述 job_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')
- 示例二:使用数据集创建训练作业
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator( modelarts_session=session, framework_type='PyTorch', # AI引擎名称 framework_version='PyTorch-1.0.0-python3.6', # AI引擎版本 code_dir='/bucket/src/', # 训练脚本目录 boot_file='/bucket/src/pytorch_sentiment.py', # 训练启动脚本目录 log_url='/bucket/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/bucket/output/', # 训练输出目录 train_instance_type='modelarts.vm.cpu.2u', # 训练环境规格 train_instance_count=1, # 训练节点个数 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述 job_instance = estimator.fit(dataset_id='4AZNvFkN7KYr5EdhFkH', dataset_version_id='UOF9BIeSGArwVt0oI6T', wait=False, job_name='my_training_job')
- 示例三:创建自定义镜像的训练作业
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator( modelarts_session=session, log_url='/bucket/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/bucket/output/', # 训练输出目录 train_instance_type='modelarts.vm.cpu.2u', # 训练环境规格 train_instance_count=1, # 训练节点个数 user_command='bash -x /home/work/run_train.sh python /home/work/user-job-dir/app/mnist/mnist_softmax.py --data_url /home/work/user-job-dir/app/mnist_data', # 自定义镜像启动命令 user_image_url='100.125.5.235:20202/jobmng/cpu-base:1.0', # 自定义镜像下载地址 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述 job_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')
- 示例四:向专属资源池提交训练作业
from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator( modelarts_session=session, framework_type='PyTorch', # AI引擎名称 framework_version='PyTorch-1.0.0-python3.6', # AI引擎版本 code_dir='/bucket/src/', # 训练脚本目录 boot_file='/bucket/src/pytorch_sentiment.py', # 训练启动脚本目录 log_url='/bucket/log/', # 训练日志目录 hyperparameters=[ {"label":"classes", "value": "10"}, {"label":"lr", "value": "0.001"} ], output_path='/bucket/output/', # 训练输出目录 pool_id="your pool id", # 专属资源池id train_instance_type='your instance type', # 训练环境规格,如果为None,默认使用专属池默认规格 train_instance_count=1, # 训练节点个数 job_description='pytorch-sentiment with ModelArts SDK') # 训练作业描述 job_instance = estimator.fit(inputs='/bucket/data/train/', wait=False, job_name='my_training_job')
参数说明
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
inputs |
是 |
String |
训练作业的数据存储位置。 inputs和(dataset_id、dataset_version_id)、data_source三者不可同时出现,但必须有其一。 本地训练只支持该参数。 |
dataset_id |
否 |
String |
训练作业的数据集ID。 应与dataset_version_id同时出现,但不可与inputs同时出现。 |
dataset_version_id |
否 |
String |
训练作业的数据集版本ID。 应与dataset_id同时出现,但不可与inputs同时出现。 |
wait |
否 |
Boolean |
是否等待训练作业结束,默认为False。 |
job_name |
否 |
String |
训练作业的名称,支持[a-zA-Z0-9_-]{1,64}。若不填,则会动态生成一个job_name。 |
参数 |
类型 |
描述 |
---|---|---|
TrainingJob |
Object |
训练对象。该对象包含job_id、version_id等属性,对训练作业的查询、更新、删除等操作,如可通过job_instance.job_id获取训练作业ID。 |