更新时间:2024-02-08 GMT+08:00
使用案例
主要包含三种场景的用例:
- 将指定存储路径下的数据导入到目标数据集中
- 基于已标注的数据导入到数据集中。
- 基于未标注的数据导入到数据集中。
- 将指定存储路径下的数据导入到指定标注任务中。
- 基于已标注的数据导入到标注任务中。
- 基于未标注的数据导入到标注任务中。
- 基于数据集创建节点构建数据集导入节点。
将指定存储路径下的数据导入到目标数据集中
使用场景:适用于需要对数据集进行数据更新的操作。
- 用户将指定路径下已标注的数据导入到数据集中(同时导入标签信息),后续可增加数据集版本发布节点进行版本发布。
数据准备:提前在ModelArts管理控制台,创建数据集,并将已标注的数据上传至OBS中。
from modelarts import workflow as wf # 通过DatasetImportStep将指定路径下的数据导入到数据集中,输出数据集对象 # 定义数据集对象 dataset = wf.data.DatasetPlaceholder(name="input_dataset") # 定义OBS数据对象 obs = wf.data.OBSPlaceholder(name = "obs_placeholder_name", object_type = "directory" ) # object_type必须是file或者directory dataset_import = wf.steps.DatasetImportStep( name="data_import", # 数据集导入节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="数据集导入", # 标题信息,不填默认使用name值 inputs=[ wf.steps.DatasetImportInput(name="input_name_1", data=dataset), # 目标数据集在运行时配置;data字段也可使用wf.data.Dataset(dataset_name="dataset_name")表示 wf.steps.DatasetImportInput(name="input_name_2", data=obs) # 导入的数据存储路径,运行时配置;data字段也可使用wf.data.OBSPath(obs_path="obs_path")表示 ],# DatasetImportStep的输入 outputs=wf.steps.DatasetImportOutput(name="output_name"), # DatasetImportStep的输出 properties=wf.steps.ImportDataInfo( annotation_format_config=[ wf.steps.AnnotationFormatConfig( format_name=wf.steps.AnnotationFormatEnum.MA_IMAGE_CLASSIFICATION_V1, # 已标注数据的标注格式,示例为图像分类 scene=wf.data.LabelTaskTypeEnum.IMAGE_CLASSIFICATION # 标注的场景类型 ) ] ) ) workflow = wf.Workflow( name="dataset-import-demo", desc="this is a demo workflow", steps=[dataset_import] )
- 用户将指定路径下未标注的数据导入到数据集中,后续可增加数据集标注节点对新增数据进行标注。
数据准备:提前在ModelArts界面创建数据集,并将未标注的数据上传至OBS中。
from modelarts import workflow as wf # 通过DatasetImportStep将指定路径下的数据导入到数据集中,输出数据集对象 # 定义数据集对象 dataset = wf.data.DatasetPlaceholder(name="input_dataset") # 定义OBS数据对象 obs = wf.data.OBSPlaceholder(name = "obs_placeholder_name", object_type = "directory" ) # object_type必须是file或者directory dataset_import = wf.steps.DatasetImportStep( name="data_import", # 数据集导入节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="数据集导入", # 标题信息,不填默认使用name值 inputs=[ wf.steps.DatasetImportInput(name="input_name_1", data=dataset), # 目标数据集在运行时配置;data字段也可使用wf.data.Dataset(dataset_name="dataset_name")表示 wf.steps.DatasetImportInput(name="input_name_2", data=obs) # 导入的数据存储路径,运行时配置;data字段也可使用wf.data.OBSPath(obs_path="obs_path")表示 ],# DatasetImportStep的输入 outputs=wf.steps.DatasetImportOutput(name="output_name") # DatasetImportStep的输出 ) workflow = wf.Workflow( name="dataset-import-demo", desc="this is a demo workflow", steps=[dataset_import] )
将指定存储路径下的数据导入到指定标注任务中
使用场景:适用于需要对标注任务进行数据更新的操作。
- 用户将指定路径下已标注的数据导入到标注任务中(同时导入标签信息),后续可增加数据集版本发布节点进行版本发布。
数据准备:基于使用的数据集,提前创建标注任务,并将已标注的数据上传至OBS中。
from modelarts import workflow as wf # 通过DatasetImportStep将指定路径下的数据导入到标注任务中,输出标注任务对象 # 定义标注任务对象 label_task = wf.data.LabelTaskPlaceholder(name="label_task_placeholder_name") # 定义OBS数据对象 obs = wf.data.OBSPlaceholder(name = "obs_placeholder_name", object_type = "directory" ) # object_type必须是file或者directory dataset_import = wf.steps.DatasetImportStep( name="data_import", # 数据集导入节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="数据集导入", # 标题信息,不填默认使用name值 inputs=[ wf.steps.DatasetImportInput(name="input_name_1", data=label_task), # 目标标注任务对象,在运行时配置;data字段也可使用wf.data.LabelTask(dataset_name="dataset_name", task_name="label_task_name")表示 wf.steps.DatasetImportInput(name="input_name_2", data=obs) # 导入的数据存储路径,运行时配置;data字段也可使用wf.data.OBSPath(obs_path="obs_path")表示 ],# DatasetImportStep的输入 outputs=wf.steps.DatasetImportOutput(name="output_name"), # DatasetImportStep的输出 properties=wf.steps.ImportDataInfo( annotation_format_config=[ wf.steps.AnnotationFormatConfig( format_name=wf.steps.AnnotationFormatEnum.MA_IMAGE_CLASSIFICATION_V1, # 已标注数据的标注格式,示例为图像分类 scene=wf.data.LabelTaskTypeEnum.IMAGE_CLASSIFICATION # 标注的场景类型 ) ] ) ) workflow = wf.Workflow( name="dataset-import-demo", desc="this is a demo workflow", steps=[dataset_import] )
- 用户将指定路径下未标注的数据导入到标注任务中,后续可增加数据集标注节点对新增数据进行标注。
数据准备:基于使用的数据集,提前创建标注任务,并将未标注的数据上传至OBS中。
from modelarts import workflow as wf # 通过DatasetImportStep将指定路径下的数据导入到标注任务中,输出标注任务对象 # 定义标注任务对象 label_task = wf.data.LabelTaskPlaceholder(name="label_task_placeholder_name") # 定义OBS数据对象 obs = wf.data.OBSPlaceholder(name = "obs_placeholder_name", object_type = "directory" ) # object_type必须是file或者directory dataset_import = wf.steps.DatasetImportStep( name="data_import", # 数据集导入节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="数据集导入", # 标题信息,不填默认使用name值 inputs=[ wf.steps.DatasetImportInput(name="input_name_1", data=label_task), # 目标标注任务对象,在运行时配置;data字段也可使用wf.data.LabelTask(dataset_name="dataset_name", task_name="label_task_name")表示 wf.steps.DatasetImportInput(name="input_name_2", data=obs) # 导入的数据存储路径,运行时配置;data字段也可使用wf.data.OBSPath(obs_path="obs_path")表示 ],# DatasetImportStep的输入 outputs=wf.steps.DatasetImportOutput(name="output_name") # DatasetImportStep的输出 ) workflow = wf.Workflow( name="dataset-import-demo", desc="this is a demo workflow", steps=[dataset_import] )
基于数据集创建节点,构建数据集导入节点
使用场景:数据集创建节点的输出作为数据集导入节点的输入。
from modelarts import workflow as wf # 通过DatasetImportStep将指定路径下的数据导入到数据集中,输出数据集对象 # 定义OBS数据对象 obs = wf.data.OBSPlaceholder(name = "obs_placeholder_name", object_type = "directory" ) # object_type必须是file或者directory dataset_import = wf.steps.DatasetImportStep( name="data_import", # 数据集导入节点的名称,命名规范(只能包含英文字母、数字、下划线(_)、中划线(-),并且只能以英文字母开头,长度限制为64字符),一个Workflow里的两个step名称不能重复 title="数据集导入", # 标题信息,不填默认使用name值 inputs=[ wf.steps.DatasetImportInput(name="input_name_1", data=create_dataset.outputs["create_dataset_output"].as_input()), # 数据集创建节点的输出作为导入节点的输入 wf.steps.DatasetImportInput(name="input_name_2", data=obs) # 导入的数据存储路径,运行时配置;data字段也可使用wf.data.OBSPath(obs_path="obs_path")表示 ],# DatasetImportStep的输入 outputs=wf.steps.DatasetImportOutput(name="output_name"), # DatasetImportStep的输出 depend_steps=create_dataset # 依赖的数据集创建节点对象 ) # create_dataset是 wf.steps.CreateDatasetStep的一个实例,create_dataset_output是wf.steps.CreateDatasetOutput的name字段值 workflow = wf.Workflow( name="dataset-import-demo", desc="this is a demo workflow", steps=[dataset_import] )
父主题: 数据集导入节点