更新时间:2023-08-16 gmt 08:00

创建训练作业-凯发k8国际娱乐官网入口

示例代码

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

modelarts sdk不支持通过在ai gallery中订阅的算法创建训练作业。

  • 示例一:提交常用框架训练作业

    estimator中同时指定framework_type和framework_version,会提交一个常用框架训练作业。

    from modelarts.session import session
    from modelarts.train_params import trainingfiles
    from modelarts.train_params import outputdata
    from modelarts.train_params import inputdata
    from modelarts.estimatorv2 import estimator
    session = session()
    #训练脚本里接收的参数,请根据实际情况填写
    parameters = [{"name": "mod", "value":"gpu"}, 
                  {"name": "epoc_num", "value":2}]
    estimator = estimator(session=session,
                          training_files=trainingfiles(code_dir= "obs://bucket_name/code_dir/", boot_file="boot_file.py"),
                          outputs=[outputdata(obs_path="obs://bucket_name/output/", name="output_dir")],
                          parameters=parameters,
                          framework_type='pytorch',                      # 常用框架类型
                          framework_version='pytorch-1.4.0-python3.6',   # 常用框架版本
                          train_instance_type="modelarts.p3.large.public",
                          train_instance_count=1,
                          log_url="obs://bucket_name/log/",
                          env_variables={"user_env_var": "customize environment variable"},
                          working_dir="/home/ma-user/modelarts/user-job-dir",
                          local_code_dir="/home/ma-user/modelarts/user-job-dir",
                          job_description='this is a image net train job')
    job_instance = estimator.fit(inputs=[inputdata(obs_path="obs://bucket_name/input/", name="data_url")],
                                 job_name="job_name_1")
  • 示例二:提交自定义镜像训练作业

    estimator中同时指定user_image_url和user_command,会提交自定义镜像训练作业,并使用自定义启动命令来启动训练任务。

    from modelarts.session import session
    from modelarts.train_params import trainingfiles
    from modelarts.train_params import outputdata
    from modelarts.train_params import inputdata
    from modelarts.estimatorv2 import estimator
    session = session()
    #训练脚本里接收的参数,请根据实际情况填写
    parameters = [{"name": "mod", "value":"gpu"}, 
                  {"name": "epoc_num", "value":2}]
    estimator = estimator(session=session,
                          training_files=trainingfiles(code_dir= "obs://bucket_name/code_dir/", boot_file="boot_file.py"),
                          outputs=[outputdata(obs_path="obs://bucket_name/output/", name="output_dir")],
                          parameters=parameters,
                          user_image_url="sdk-test/pytorch1_4:1.0.1",     # 自定义镜像地址
                          user_command="/home/ma-user/anaconda3/envs/pytorch-1.4/bin/python /home/ma-user/modelarts/user-job-dir/train/test-pytorch.py",  # 自定义启动命令
                          train_instance_type="modelarts.p3.large.public",
                          train_instance_count=1,
                          log_url="obs://bucket_name/log/",
                          env_variables={"user_env_var": "customize environment variable"},
                          working_dir="/home/ma-user/modelarts/user-job-dir",
                          local_code_dir="/home/ma-user/modelarts/user-job-dir",
                          job_description='this is a image net train job')
    job_instance = estimator.fit(inputs=[inputdata(obs_path="obs://bucket_name/input/", name="data_url")],
                                 job_name="job_name_2")
  • 示例三:向专属资源池提交训练作业
    from modelarts.session import session
    from modelarts.train_params import trainingfiles
    from modelarts.train_params import outputdata
    from modelarts.train_params import inputdata
    from modelarts.estimatorv2 import estimator
    session = session()
    #训练脚本里接收的参数,请根据实际情况填写
    parameters = [{"name": "mod", "value":"gpu"}, 
                  {"name": "epoc_num", "value":2}]
    estimator = estimator(session=session,
                          training_files=trainingfiles(code_dir= "obs://bucket_name/code_dir/", boot_file="boot_file.py"),
                          outputs=[outputdata(obs_path="obs://bucket_name/output/", name="output_dir")],
                          parameters=parameters,
                          framework_type='pytorch',                       
                          framework_version='pytorch-1.4.0-python3.6',    
                          pool_id="your pool id",                                 # 专属资源池id
                          train_instance_type="modelarts.pool.visual.xlarge",     # 专属池的虚拟子规格
                          train_instance_count=1,
                          log_url="obs://bucket_name/log/",
                          env_variables={"user_env_var": "customize environment variable"},
                          working_dir="/home/ma-user/modelarts/user-job-dir",
                          local_code_dir="/home/ma-user/modelarts/user-job-dir",
                          job_description='this is a image net train job')
    job_instance = estimator.fit(inputs=[inputdata(obs_path="obs://bucket_name/input/", name="data_url")],
                                 job_name="job_name_3")
  • 示例四:使用数据集创建训练作业
    from modelarts.session import session
    from modelarts.train_params import trainingfiles
    from modelarts.train_params import outputdata
    from modelarts.train_params import inputdata
    from modelarts.estimatorv2 import estimator
    session = session()
    #训练脚本里接收的参数,请根据实际情况填写
    parameters = [{"name": "model_name", "value":"s"}, 
                  {"name": "batch-size", "value": 32},
                  {"name": "epochs", "value":100},
                  {"name": "img-size", "value":"640,640"} ]
    estimator = estimator(session=session,
                          training_files=trainingfiles(code_dir= "obs://bucket_name/code_dir/", boot_file="boot_file.py"),
                          outputs=[outputdata(obs_path="obs://bucket_name/output/", name="output_dir")],
                          parameters=parameters,
                          framework_type='pytorch',                       # 常用框架类型
                          framework_version='pytorch-1.4.0-python3.6',    # 常用框架版本
                          train_instance_type="modelarts.p3.large.public",
                          train_instance_count=1,
                          log_url="obs://bucket_name/log/",
                          working_dir="/home/ma-user/modelarts/user-job-dir",
                          local_code_dir="/home/ma-user/modelarts/user-job-dir",
                          job_description='this is a image net train job')
    job_instance = estimator.fit(dataset_id="your dataset id",
                                 dataset_version_id="your dataset version id",
                                 job_name="job_name_5")

参数说明

表1 estimator请求参数说明

参数

是否必选

类型

描述

session

object

会话对象,初始化方法请参考session鉴权

training_files

trainingfiles object

训练脚本在obs中的路径,具体请参考trainingfiles初始化

outputs

array of outputdata objects

训练的输出位置信息,具体请参考outputdata初始化

parameters

json array

训练任务的运行参数。格式为

[{"name":"your name", "value": "your value"}],value的值可以是string,也可以是int。

train_instance_type

string

训练作业选择的资源规格,请参考

train_instance_count

int

训练作业计算节点个数。

framework_type

string

训练作业选择的引擎规格,请参考。

framework_version

string

训练作业选择的引擎版本,请参考。

user_image_url

string

自定义镜像训练作业的自定义镜像的swr-url。

user_command

string

自定义镜像训练作业的启动命令。

log_url

string

训练作业日志的保存位置,是一个obs路径,如"obs://xx/yy/zz/"。

local_code_dir

string

算法的代码目录下载到训练容器内的本地路径。规则:

  • 必须为/home下的目录。
  • v1兼容模式下,当前字段不生效。
  • 当code_dir以file://为前缀时,当前字段不生效。

working_dir

string

运行算法时所在的工作目录。规则:v1兼容模式下,当前字段不生效。

job_description

string

训练作业的描述。

volumes

json array

训练作业挂载卷信息,格式参考:

[{

"nfs": {

"local_path": "/xx/yy/zz",

"read_only": false,

"nfs_server_path": "xxx.xxx.xxx.xxx:/"

}

}]

env_variables

dict

训练作业的环境变量。

pool_id

string

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

表2 trainingfiles初始化参数说明

参数

是否必选

类型

描述

code_dir

string

训练作业的代码目录,是一个obs路径,需要以"obs:/"开头,如"obs://xx/yy/"。

boot_file

string

训练作业的代码启动文件,需要在代码目录下,可填写相对路径,如"boot_file.py",也可填写绝对路径,如"obs://xx/yy/boot_file.py"。

表3 outputdata初始化参数说明

参数

是否必选

类型

描述

obs_path

string

数据实际输出到obs的路径。

name

string

输出数据的关键字参数名称,如"output_dir"。

表4 fit请求参数说明

参数

是否必选

类型

描述

inputs

array of inputdata object

保存在obs中的训练作业输入数据。inputs和(dataset_id, dataset_version_id)两者不可同时出现。

wait

boolean

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

job_name

string

训练作业名称。

show_log

boolean

作业提交成功后,是否输出训练作业的日志,默认为false。

dataset_id

string

训练作业的数据集id,可参考获取。需要与dataset_version_id同时出现,但是不可与inputs同时出现。

dataset_version_id

string

训练作业的数据集版本id,可参考获取。需要与dataset_id同时出现,但是不可与inputs同时出现。

表5 inputdata初始化参数说明

参数

是否必选

类型

描述

obs_path

string

训练作业需要的数据集obs路径,如"obs://xx/yy/"。

name

string

输入数据的关键字参数名称,如"data_url"。

表6 训练作业创建成功响应说明

参数

类型

描述

trainingjob

object

训练对象,该对象包含job_id等属性,对训练作业的查询、更新、删除等操作时,可通过job_instance.job_id获取训练作业id。

表7 调用训练接口失败响应参数

参数

类型

描述

error_msg

string

调用失败时的错误信息,调用成功时无此字段。

error_code

string

调用失败时的错误码,具体请参见,调用成功时无此字段。

error_solution

string

调用失败时的提示解决信息,调用成功时无此字段。

分享:
网站地图