华为云用户手册

  • 参数说明 表1 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。 表2 fit请求参数说明 参数 是否必选 参数类型 描述 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。 表3 训练平台训练的成功响应说明 参数 类型 描述 TrainingJob Object 训练对象。该对象包含job_id、version_id等属性,对训练作业的查询、更新、删除等操作,如可通过job_instance.job_id获取训练作业ID。
  • 示例代码 在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')
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法请参见Session鉴权。 job_id 是 String 训练作业的ID。job_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.job_id”。或可通过查询训练作业列表的响应中获取。 version_id 是 String 训练作业的版本ID。version_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.version_id”。或可通过查询训练作业列表的响应获取。 表2 get_job_info返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 is_success Boolean 接口调用是否成功。 job_id Long 训练作业的ID。 job_name String 训练作业的名称。 job_desc String 训练作业的描述信息。 version_id Long 训练作业的版本ID。 version_name String 训练作业的版本名称。 pre_version_id Long 训练作业前一版本的名称。 engine_type Short 训练作业的引擎类型。“engine_type”和“engine_name”对应关系如下: engine_type:1,engine_name: "TensorFlow" engine_type:2,engine_name: "MXNet" engine_type:3,engine_name: "Ray" engine_type:4,engine_name:"Caffe" engine_type:5,engine_name: "Spark_MLlib" engine_type:9,engine_name: "XGBoost-Sklearn" engine_type:10,engine_name: "PyTorch" engine_type:12,engine_name: "Horovod" engine_name String 训练作业的引擎名称。目前支持的引擎名称如下: Caffe Horovod MXNet PyTorch Ray Spark_MLlib TensorFlow XGBoost-Sklearn engine_id Long 训练作业的引擎ID。 engine_version String 训练作业使用的引擎版本。 status Integer 训练作业的状态,详细作业状态列表请参见作业状态参考。 app_url String 训练作业的代码目录。 boot_file_url String 训练作业的代码启动文件。 create_time Long 训练作业的创建时间。 parameter JSON Array 训练作业的运行参数,为label-value格式;当为自定义镜像训练作业的时候,此参数为容器环境变量。 duration Long 训练作业的运行时间,单位为毫秒。 spec_id Long 训练作业资源规格ID。 core String 资源规格的核数。 cpu String 资源规格CPU内存。 gpu_num Integer 资源规格GPU的个数。 gpu_type String 资源规格GPU的类型。 worker_server_num Integer 训练作业worker的个数。 data_url String 训练作业的数据集。 train_url String 训练作业输出文件OBS路径。 dataset_version_id String 训练作业的数据集版本ID。 dataset_id String 训练作业的数据集ID。 data_source JSON Array 训练作业使用的多数据集。 model_id Long 训练作业的模型ID。 model_metric_list JSON Array 训练作业的模型评测参数。 system_metric_list JSON Array 训练作业的系统监控指标。 user_image_url String 自定义镜像训练作业的自定义镜像的SWR-URL。 user_command String 自定义镜像训练作业的自定义镜像的容器的启动命令。 表3 data_source属性列表 参数 参数类型 描述 dataset_id String 训练作业的数据集ID。 dataset_version String 训练作业的数据集版本ID。 type String 数据集类型。 “obs”:表示使用OBS的数据。 “dataset”:表示使用数据集的数据。 data_url String OBS的桶路径。 表4 model_metric_list属性列表 参数 参数类型 描述 metric JSON Array 训练作业的模型单个分类测评参数。 total_metric JSON Array 训练作业的模型总测评参数。 表5 system_metric_list属性列表 参数 参数类型 描述 cpuUsage JSON Array 训练作业CPU资源占用率。 memUsage JSON Array 训练作业内存资源占用率。 gpuUtil JSON Array 训练作业GPU资源占用率。 表6 metric属性列表 参数 参数类型 描述 metric_values JSON Array 训练作业模型单个分类测评参数指标。 reserved_data JSON Array 预留字段。 metric_meta JSON Array 训练作业模型单个分类,包含类ID和类名。 表7 metric_values属性列表 参数 参数类型 描述 recall JSON Array 训练作业模型单个分类召回率。 precision JSON Array 训练作业模型单个分类精确率。 accuracy JSON Array 训练作业模型单个分类准确率。 表8 total_metric属性列表 参数 参数类型 描述 total_metric_meta JSON Array 预留字段。 total_reserved_data JSON Array 预留字段。 total_metric_values JSON Array 训练作业模型总测评参数指标。 表9 total_metric_values属性列表 参数 参数类型 描述 f1_score Float 训练作业模型总召回。 recall Float 训练作业模型总召回率。 precision Float 训练作业模型总精确率。 accuracy Float 训练作业模型总准确率。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id和version_id查询 1 2 3 4 5 6 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator(modelarts_session=session, job_id="182626", version_id="278813") job_info = estimator.get_job_info() print(job_info)
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法见Session鉴权。 job_id 是 String 训练作业的ID。job_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.job_id”。或可通过查询训练作业列表的响应获取。 version_id 是 String 训练作业的版本ID。version_id可通过查询训练作业版本列表的响应获取。 表2 delete_job_version返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 is_success Boolean 接口调用是否成功。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id和version_id删除 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator(session, job_id="182626", version_id="278813") status = estimator.delete_job_version() 方式二:根据创建训练作业版本生成的训练作业版本对象删除 1 status = job_version_instance.delete_job_version() 方式三:根据查询训练作业版本列表返回的指定训练作业版本对象删除 1 status = job_version_instance_list[0].delete_job_version()
  • 参数说明 表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。 应与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。
  • 示例代码 在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')
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() engine_list = Estimator.get_framework_list(modelarts_session=session) print(engine_list)
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() job_config_instance_list = Estimator.get_job_configs_object_list(modelarts_session=session, is_show=True, per_page=10, page=1, sort_by="create_time", order="asc", search_content="configname") print(job_config_instance_list)
  • 参数说明 表1 get_job_configs_object_list请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法见Session鉴权。 per_page 否 Integer 指定每一页展示作业参数的总量,默认为“10”,“per_page”可选的范围为[1,1000]。 page 否 Integer 指定要查询页的索引,默认为“1”。 sortBy/sort_by 否 String 当使用AK/SK认证方式时,参数名为sortBy;当使用用户名密码认证方式时,参数名为sort_by。指定查询的排序方式,默认是作业名称“job_name”,目前支持的排序还有作业描述“job_desc”,作业状态“status”,运行时长“duration”,引擎类型“engine_type”以及创建时间 “create_time”。 order 否 String 可选值有: “asc”为递增排序,默认为“asc”。 “desc”为递减排序。 search_content 否 String 指定要查询的文字信息,例如参数名称。默认为空。 is_show 否 Boolean 是否打印训练作业参数列表,默认为“True”。 “get_job_configs_object_list”成功响应后返回训练对象列表,其中列表中的每个元素参数请参见表2。 表2 TrainingJob对象描述 参数 类型 描述 TrainingJob Object 训练对象。该对象包含config_name等属性,及对训练作业参数的查询、删除等操作,如可通过job_config_instance.config_name获取训练作业参数名称。
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法请参见Session鉴权。 job_id 是 String 训练作业的ID。job_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.job_id”。或可通过查询训练作业列表的响应获取。 version_id 是 String 训练作业的版本ID。version_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.version_id”。或可通过查询训练作业列表的响应获取。 表2 get_job_log请求参数说明 参数 是否必选 参数类型 描述 log_file 是 String 训练作业日志文件的文件名。 start_byte 否 Long 获取日志的起始位置,默认为0。“start_byte”限制范围为[-1, +∞],如果设置为-1,则表示获得最新长度为“offset”的日志。 offset 否 Long 获取日志的长度,默认为2048。“offset”限制长度为[-2048, 2048]。 表3 get_job_log返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 content String 请求获得日志的内容。 lines Integer 获得日志的行数。 start_line String 该段日志内容的开始位置。 end_line String 该段日志内容的结束位置。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id和version_id查询 1 2 3 4 5 6 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator(modelarts_session=session, job_id="182626", version_id="278813") job_log = estimator.get_job_log(log_file='job-job-0713-191758.0') print(job_log) 方式二:根据创建训练作业生成的训练作业对象查询 1 2 job_log = job_instance.get_job_log(log_file='job-job-0713-191758.0') print(job_log) 方式三:根据查询训练作业版本列表返回的指定训练作业版本对象查询 1 2 job_log = job_version_instance_list[0].get_job_log(log_file='job-job-0713-191758.0') print(job_log)
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法见Session鉴权。 train_instance_count 是 Long 训练作业worker的个数。 code_dir 否 String 训练作业的代码目录,如“/bucket/src/”。当填入model_name时不需要填写。 boot_file 否 String 训练作业的代码启动文件,需要在代码目录下,如“/bucket/src/boot.py”。当填入model_name时不需要填写。 model_name 否 Long 训练作业的内置算法模型名称。填入model_name后app_url与boot_file_url不需填写,framework_type和framework_version也不需要填写。 output_path 是 String 训练作业的输出位置。 hyperparameters 否 JSON Array 训练作业的运行参数,为label-value格式;当为自定义镜像训练作业的时候,此参数为容器环境变量。 log_url 否 String 训练作业的日志OBS输出路径URL,默认为空。如:“/usr/log/”。 train_instance_type 是 Long 训练作业选择的资源规格。若选择在训练平台训练,请从查询资源规格列表接口获取。 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}”。 表2 update_job_configs请求参数说明 参数 是否必选 参数类型 描述 config_name 是 String 训练作业参数名称。限制为1-20位只含数字、字母、下划线或者中划线的名称。当不填写时,默认会按日期动态生成。 config_desc 否 String 对训练作业的描述,默认为空,字符串的长度限制为[0,256]。 inputs 否 String 训练作业的OBS数据存储位置。 dataset_id 否 String 训练作业的数据集ID。应与dataset_version_id同时出现,但不可与inputs同时出现。 dataset_version_id 否 String 训练作业的数据集版本ID。应与dataset_id同时出现,但不可与inputs同时出现。 data_source 否 JSON Array 训练作业使用的数据集。不可与inputs、dataset_id、dataset_version_id同时使用。 表3 data_source属性列表 参数 是否必选 参数类型 描述 dataset_id 否 String 训练作业的数据集ID。 dataset_version 否 String 训练作业的数据集版本ID。 type 是 String 数据集类型。可选值:“obs”、“dataset”。 data_url 否 String obs的桶路径,不可与dataset_id/dataset_version同时出现。 表4 update_job_configs返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 is_success Boolean 接口调用是否成功。
  • 示例代码 在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 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.gpu.p100', # 训练环境规格 train_instance_count=1) # 训练节点个数 update_info = estimator.update_job_configs(config_name='my_job_config', inputs='/bucket/dataset/', config_desc='update') 示例二:使用数据集更新训练作业参数 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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.gpu.p100', # 训练环境规格 train_instance_count=1) # 训练节点个数 update_info = estimator.update_job_configs(config_name='my_job_config', dataset_id='4AZNvFkN7KYr5EdhFkH', dataset_version_id='UOF9BIeSGArwVt0oI6T', config_desc='update')
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() job_list_info = Estimator.get_job_list(modelarts_session=session, status=8, per_page=10, page=1, order="asc", search_content="job") print(job_list_info)
  • 参数说明 表1 get_job_list请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法请参见Session鉴权。 status 否 Integer 作业状态的查询,默认为所有状态。例如查看创建失败的作业,可选值为3、5、6、13。详细作业状态列表请参见作业状态参考。 per_page 否 Integer 指定每一页展示作业的总量,默认为“10”,可选的范围为[1,1000]。 page 否 Integer 指定要查询页的索引,默认为“1”。 sortBy/sort_by 否 String 当使用AK/SK认证方式时,参数名为“sortBy”;当使用账户认证方式时,参数名为“sort_by”。指定查询的排序方式,默认是作业名称“job_name”,目前支持的排序还有作业描述“job_desc”,作业状态“status”,运行时长“duration”,引擎类型“engine_type”以及创建时间 “create_time”。 order 否 String 可选值有: “asc”为递增排序。 “desc”为递减排序,默认为“desc”。 search_content 否 String 指定要查询的文字信息,例如训练作业名字,默认为空,字符串的长度为[0,100]。 表2 get_job_list返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 job_total_count Integer 查询到的用户创建作业总数。 job_count_limit Integer 用户还可以创建训练作业的数量。 is_success Boolean 接口调用是否成功。 quotas Integer 训练作业的最大运行数量。 jobs JSON Array 训练作业的属性列表,具体请参见表3。 表3 jobs属性列表 参数 参数类型 描述 job_id Long 训练作业的ID。 job_name String 训练作业的名称。 version_id Long 训练作业的版本ID。 status Byte 训练作业的运行状态,详细作业状态列表请参见作业状态参考。 create_time Long 训练作业的创建时间,时间戳格式。 duration Long 训练作业的运行时长,单位为毫秒。 job_desc String 训练作业的具体描述。 version_count Long 训练作业的版本数。
  • 参数说明 表1 VisualizationJob请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法见Session鉴权。 visualization_id 是 String 可视化作业ID。 表2 stop_visualization_job返回参数说明 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 is_success Boolean 接口调用是否成功。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一: 根据指定的visualization_id停止 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import VisualizationJob session = Session() job = VisualizationJob(modelarts_session=session, visualization_id='8992') status = job.stop_visualization_job() 方式二: 根据创建可视化作业生成的可视化作业对象停止 1 status = job_visualization_instance.stop_visualization_job() 方式三: 根据查询可视化作业对象列表返回的指定可视化作业对象停止 1 status = job_visualization_instance_list[0].stop_visualization_job()
  • 参数说明 表1 Estimator请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法请参见Session鉴权。 job_id 是 String 训练作业的ID。job_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.job_id”。或可通过查询训练作业列表的响应获取。 version_id 是 String 训练作业的版本ID。version_id可通过创建训练作业生成的训练作业对象查询,如“job_instance.version_id”。或可通过查询训练作业列表的响应获取。 表2 get_job_log_file_list返回参数说明 参数 参数类型 描述 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 log_file_list List 训练作业的日志文件名。单机作业日志仅有一个文件,分布式作业日志有多个文件。 is_success Boolean 接口调用是否成功。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 方式一:根据指定的job_id和version_id获取 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() estimator = Estimator(modelarts_session=session, job_id="182626", version_id="278813") job_log_list = estimator.get_job_log_file_list() 方式二:根据创建训练作业生成的训练作业对象获取 1 job_log_list = job_instance.get_job_log_file_list() 方式三:根据查询训练作业版本列表返回的指定训练作业版本对象获取 1 job_log_list = job_version_instance_list[0].get_job_log_file_list()
  • 参数说明 表1 get_visualization_job_list请求参数说明 参数 是否必选 参数类型 描述 modelarts_session 是 Object 会话对象,初始化方法见Session鉴权。 status 否 String 可视化作业的运行状态,详细作业状态列表请查看作业状态参考。 per_page 否 Integer 指定每一页展示作业的总量,默认为“10”,“per_page”可选的范围为[1,100]。 page 否 Integer 指定要查询页的索引,默认为“1”。 sortBy/sort_by 否 String 当使用AK/SK认证方式时,参数名为sortBy;当使用用户名密码认证方式时,参数名为sort_by。指定查询的排序方式,默认是作业名称“job_name”,目前支持的排序还有作业描述“job_desc”,作业状态“status”,运行时长“duration”以及创建时间 “create_time”,日志存储目录“log_dir”。 order 否 String 可选值。 “asc”为递增排序,默认为“asc”。 “desc”为递减排序。 search_content 否 String 指定要查询的文字信息,例如可视化作业名字,默认为空,字符串的长度为[0,100]。 表2 get_visualization_job_list返回参数说明 参数 参数类型 描述 error_code String 调用失败时的错误码,具体请参见错误码。 调用成功时无此字段。 error_msg String 调用失败时的错误信息。 调用成功时无此字段。 job_total_count Integer 查询的可视化作业总数。 job_count_limit Integer 用户还可以创建可视化作业的数量。 jobs JSON Array 可视化作业的属性列表,具体请参见表3。 表3 jobs属性列表 参数 参数类型 描述 job_id Integer 可视化作业ID。 job_name String 可视化作业的名称。 status Integer 可视化作业的运行状态,详细作业状态列表请参见作业状态参考。 create_time Long 可视化作业的创建时间。 duration Long 可视化作业的运行时长,单位为毫秒。 job_desc String 可视化作业的具体描述。 service_url String 可视化作业的endpoint。 train_url String 可视化作业的日志存储路径。
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import VisualizationJob session = Session() job_list = VisualizationJob.get_visualization_job_list(modelarts_session=session, status=8, per_page=10, page=1, sort_by="create_time", order="asc", search_content="job") print(job_list)
  • 示例代码 在ModelArts notebook平台,Session鉴权无需输入鉴权参数。其它平台的Session鉴权请参见Session鉴权。 1 2 3 4 5 from modelarts.session import Session from modelarts.estimator import Estimator session = Session() algo_info = Estimator.get_train_instance_types(modelarts_session=session) print(algo_info)
  • 响应提取 响应提取是提取接口响应结果的某一部分,命名为参数,供后续测试步骤参数化调用。响应提取需要在前序测试步骤定义,后续测试步骤使用。 在前序测试步骤中,在“响应提取”页签创建要传递的参数。响应提取来源用到内置参数,请参考内置参数了解如何使用内置参数。响应提取同时支持正则表达式的匹配,提取出与给定正则表达式匹配的返回值。 在后续测试步骤中,通过“${参数名}”方式引用前序测试步骤创建的响应提取。后续步骤的URL、请求头、请求体中均可以引用此参数。如果在JSON格式的请求体中引用此参数,请在参数外使用英文引号,如: { id: "用例ID" name:"${name}" } 响应提取支持根据给定的“key:value”获取字符串,详细配置可参考示例:根据给定的key:value从响应体中获取字符串。 字段 说明 出参名称 用于之后使用${出参名称}来引用此参数,名称使用字母数字下划线。 来源 被检测字段的来源,如响应体(JSON)、响应头、响应码。 属性 若来源是响应码,属性为空。详细介绍请参见响应码检查。 若来源是响应头,属性为响应头中字段的名称。详细介绍请参见响应头检查。 若来源是响应体(JSON),属性有两种填写方法: 普通提取表达式(非“$”开头),例如“item.name”。 取字段中的值,支持嵌套取值。详细介绍请参见响应体(JSON)检查。 从响应体中提取数组时,下标可以是数字,也可以是“key:value”表达式,详细介绍请参见示例:根据给定的key:value从响应体中获取字符串。 JsonPath表达式(“$.”或“$[”开头),例如“$.store.book[0].title”。 详细介绍请参见示例:根据JsonPath从响应体中获取数据。 高级提取类型 可选项,使用高级提取类型,辅助提取响应结果信息,若选择不涉及则视为不使用额外的方式匹配。 目前有两种方式: 字符串提取,也就是字符串的截取。 正则表达式,即使用正则方式对来源字符串进行过滤。 高级提取类型优先使用字符串提取功能,若不能满足需求可考虑使用正则表达式。 赋值给环境动态参数 将响应提取后的值赋值给动态变量,用于后续测试引用。请参考新建变量,如何设置动态变量。 父主题: 测试用例管理
  • API开发 CodeArts API支持生成接口请求代码和业务代码,缩短前后端开发时长,规范代码结构。 基于接口定义,CodeArts API支持自动生成各种语言和框架的请求代码和业务代码。在API设计模块,接口文档界面右侧,即可看到“生成代码”的入口。 生成接口请求代码 单击“生成代码”下拉框,选择“生成接口请求代码”,弹出“生成接口请求代码”对话框。 支持生成多种语言的接口请求代码,单击右上角,可一键复制并直接粘贴,支持编辑修改和代码格式化。 生成业务代码 单击“生成代码”下拉框,选择“生成业务代码”,弹出“生成业务代码”对话框。 根据需要选择语言、生成范围(包括“仅当前接口及关联模型”和“整个项目”),单击“生成”将生成的代码存储到本地,开发者可以将代码复制到本地的研发工具(如IntelliJ IDEA)。
  • 对于响应的处理 pm.response 在后置脚本中pm.response接口请求完成后返回响应信息,Response SDK 参考。 response包含了以下结构: pm.response.code:Number:获取响应码。 pm.response.status:String:获取响应状态。 pm.response.headers:HeaderList:获取响应头。 pm.response.responseSize:Number:获取响应大小。 pm.response.text():Function:以文本形式输出响应体。 pm.response.json():Function:以json形式输出响应体。 pm.response.setBody(''):设置响应体。 pm.response.headers.get:从响应头中获取指定参数的值,Response SDK 参考。 后置脚本中使用“pm.response.headers.get”命令可以获取响应头中指定参数的值。例如想要获取响应Header中date参数的值,那么可以在后置操作中输入如下自定义脚本: var test = pm.response.headers.get("date"); console.log(test);
  • 对于发送请求的处理 pm.sendRequest pm.sendRequest:Function用于脚本异步发送HTTP/HTTPS的请求。 更多参数信息请查阅Collection SDK 文档 。 在前置脚本和后置脚本都可以使用。 更多参考: Request JSON 结构 Response 结构 // 使用字符串URL示例 pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } else { pm.variables.set("variable_name", "new_value"); } }); // 完整请求示例 const echoPostRequest = { url: "https://postman-echo.com/post", method: "POST", header: { header_name1: "value1", header_name2: "value2", }, // body 为 x-www-form-urlencoded 格式 body: { mode: "urlencoded", // 此处为 urlencoded // 此处为 urlencoded urlencoded: [ { key: "account", value: "codeartsapi" }, { key: "password", value: "123456" }, ], }, /* // body 为 form-data 格式 body: { mode: 'formdata', // 此处为 formdata // 此处为 formdata formdata: [ { key: 'account', value: 'codeartsapi' }, { key: 'password', value: '123456' } ] } // body 为 json 格式 header: { "Content-Type": "application/json", // 提醒:header中需要添加Content-Type }, body: { mode: 'raw', raw: JSON.stringify({ account: 'codeartsapi', password:'123456' }) } // body 为 raw 或 json 格式 body: { mode: 'raw', raw: 'body内容' } */ }; pm.sendRequest(echoPostRequest, function(err, resq) { console.log(err ? err : resq.json()); }); // 对返回结果进行断言 pm.sendRequest("https://postman-echo.com/get", function(err, resq) { if (err) { console.log(err); } pm.test("response should be OK to process", function() { pm.expect(err).to.equal(null); pm.expect(resq).to.have.property("code", 200); pm.expect(resq).to.have.property("status", "OK"); }); });
  • 对于请求的处理 pm.request pm.request对象可以在脚本中对请求数据进行访问,Request SDK 参考。在前置脚本中表示即将运行的请求,在后置脚本中,表示已经运行的请求。 pm.request包含了以下结构: pm.request.url:Url:获取当前请求的URL。 pm.request.getBaseUrl():获取运行中环境选择的前置URL。 pm.request.method:String:获取当前请求的方法,如GET、POST等。 pm.request.headers:HeaderList:获取当前请求的headers列表。 pm.request.body:RequestBody:获取当前请求的body体。 pm.request.headers.add({ key: headerName:String, value: headerValue:String}):function:为当前请求添加指定键和值的header。 pm.request.headers.remove(headerName:String):function:删除当前请求里指定键的header。 pm.request.headers.get(headerName:String):function:获取请求里指定名称的header。 pm.request.headers.upsert({ key: headerName:String, value: headerValue:String}):function:插入指定键和值的header(如果header不存在则新增,如果header已存在则修改)。 pm.request.auth:获取请求的身份验证信息。
  • pm pm:Object pm对象,含有接口运行关联信息。可利用它获取或设置环境变量和全局变量,且访问请求信息和返回结果信息。 pm:info:Object pm.info对象,含有接口运行关联信息。 pm.info.eventName:String:获取当前执行的脚本类型:前置脚本(prerequest),后置脚本(test)。 pm.info.iterationCount:Number:返回执行循环的总次数,仅集合测试有效。 pm.info.iteration:Number:获取当前执行循环(iteration)次序,仅集合测试有效。 pm.info.requestId:String:获取运行中接口用例的唯一ID。 pm.info.requestName:String:获取运行中接口用例名称。
共100000条