创建数据集
创建数据集,支持从OBS中导入数据。
create_dataset(session, dataset_name=None, data_type=None, data_sources=None, work_path=None, dataset_type=None, **kwargs)
创建数据集支持两种用法:
- 根据标注类型创建数据集,一个数据集只能支持一种标注任务类型。
create_dataset(session,dataset_name=None, dataset_type=None, data_sources=None, work_path=None, **kwargs)
- 根据数据类型创建数据集,用户可以在相同的数据集上创建不同类型的标注任务,如在图像数据集上创建图像分类、物体检测等标注任务。
create_dataset(session,dataset_name=None, data_type=None, data_sources=None, work_path=None, **kwargs)
推荐使用根据数据类型创建数据集,根据标注类型创建数据集的功能将会下线。
示例代码
- 示例一:根据数据类型创建图像数据集
from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image" # 数据集名称 data_type = "IMAGE" # 数据集类型,图像类型数据集 data_sources = dict() # 数据集数据来源 data_sources["type"] = 0 # 数据来源类型,0表示OBS data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" # 数据在OBS中的路径 work_path = dict() # 数据集输出位置,用于存放输出的标注信息等文件 work_path['type'] = 0 # 数据集工作目录的类型,0表示OBS work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 数据集工作目录在OBS中的路径 create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path)
- 示例二:根据数据类型创建图像数据集(导入标注信息)
from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image-with-annotations" data_type = "IMAGE" data_sources = dict() data_sources["type"] = 0 data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" annotation_config = dict() # 源数据的标注格式 annotation_config['scene'] = "image_classification" # 数据标注场景为图像分类标注 annotation_config['format_name'] = "ModelArts image classification 1.0" # 标注格式为ModelArts image classification 1.0 data_sources['annotation_config'] = annotation_config work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path)
- 示例三:根据数据类型创建表格数据集
from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-table" data_type = "TABLE" data_sources = dict() data_sources["type"] = 0 data_sources["path"] = "/obs-gaia-test/data/table/table0/" data_sources['with_column_header'] = True work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 表格类型的数据集需要指定表格数据的schema信息 schema0 = dict() schema0['schema_id'] = 0 schema0['name'] = "name" schema0['type'] = "STRING" schema1 = dict() schema1['schema_id'] = 1 schema1['name'] = "age" schema1['type'] = "STRING" schema2 = dict() schema2['schema_id'] = 2 schema2['name'] = "label" schema2['type'] = "STRING" schemas = [] schemas.append(schema0) schemas.append(schema1) schemas.append(schema2) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, data_type=data_type, data_sources=data_sources, work_path=work_path, schema=schemas)
- 示例四:根据标注类型创建图像分类数据集
from modelarts.session import Session from modelarts.dataset import Dataset session = Session() dataset_name = "dataset-image-classification" dataset_type = 0 # 数据集的标注类型,0表示图像分类标注类型 data_sources = dict() data_sources["path"] = "/obs-gaia-test/data/image/image-classification/" data_sources["type"] = "0" work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path)
- 示例五:根据标注类型创建文本三元组数据集
dataset_name = "dataset-text-triplet" dataset_type = 102 # 数据集标注类型,102表示文本三元组标注类型 data_sources = dict() data_sources['type'] = 0 data_sources['path'] = "/obs-gaia-test/data/text/text-classification/" work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 创建文本三元组标注类型的数据集,需要传入标签参数 label_entity1 = dict() # 标签对象 label_entity1['name'] = "疾病" # 标签名称 label_entity1['type'] = 101 # 标签类型,101表示实体类型标签 label_entity2 = dict() label_entity2['name'] = "疾病别称" label_entity2['type'] = 101 label_relation1 = dict() label_relation1['name'] = "又称为" label_relation1['type'] = 102 # 标签类型,102表示关系类型标签 property = dict() # 关系类型标签需要在标签属性中指定起始实体标签和终止实体标签 property['@modelarts:from_type'] = "疾病" # 起始实体标签 property['@modelarts:to_type'] = "疾病别称" # 终止实体标签 label_relation1['property'] = property labels = [] labels.append(label_entity1) labels.append(label_entity2) labels.append(label_relation1) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path, labels=labels)
- 示例六:根据标注类型创建表格数据集
dataset_name = "dataset-table" dataset_type = 400 # 数据集标注类型,400表示表格数据集 data_sources = dict() data_sources['type'] = 0 data_sources['path'] = "/obs-gaia-test/data/table/table0/" data_sources['with_column_header'] = True # 用来指明表格数据中是否包含表头 work_path = dict() work_path['type'] = 0 work_path['path'] = "/obs-gaia-test/data/output/work_path/" # 表格数据集需要传入表格数据的表头参数 schema0 = dict() # 表格的表头 schema0['schema_id'] = 0 # 第一列表头 schema0['name'] = "name" # 表头名称,该列表头为name schema0['type'] = "STRING" # 表头数据类型,表示字符串 schema1 = dict() schema1['schema_id'] = 1 schema1['name'] = "age" schema1['type'] = "STRING" schema2 = dict() schema2['schema_id'] = 2 schema2['name'] = "label" schema2['type'] = "STRING" schemas = [] schemas.append(schema0) schemas.append(schema1) schemas.append(schema2) create_dataset_resp = Dataset.create_dataset(session, dataset_name=dataset_name, dataset_type=dataset_type, data_sources=data_sources, work_path=work_path, schema=schemas)
参数说明
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
session |
是 |
Object |
会话对象,初始化方法请参见Session鉴权。 |
dataset_name |
是 |
String |
数据集名称。 |
data_type |
否 |
String |
数据集的数据类型,与dataset_type参数二选一,推荐使用data_type。可选值如下:
|
dataset_type |
否 |
Integer |
根据数据集类型查询数据集列表,与data_type参数二选一。可选值如下:
|
data_sources |
是 |
数据集输入位置,用于将此目录及子目录下的源数据(如图片/文件/音频等)同步到数据集。对于表格数据集,该参数为导入目录。表格数据集的工作目录不支持为KMS加密桶下的OBS路径。 |
|
work_path |
是 |
数据集输出位置,用于存放输出的标注信息等文件。 |
|
labels |
否 |
List of 表7 |
数据集标签列表,创建文本三元组标注类型的数据集时需要传递该参数。 |
schema |
否 |
List of 表9 |
schema列表,用于表格数据集,指定表头的名称和类型。 |
description |
否 |
String |
数据集描述,默认为空,描述不能包含^!<>=&"'等特殊字符,长度为0-256。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
Integer |
数据类型。可选值如下:
|
path |
是 |
String |
数据源所在路径。
|
content_info |
否 |
从AI Gallery下载数据集时数据集资产的信息。 |
|
annotation_config |
否 |
数据标注格式的说明。目前支持的标注格式类型如下:
|
|
with_column_header |
否 |
Boolean |
表格数据集必选参数,表格的第一行是否为表头。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
content_id |
是 |
String |
AI Gallery中数据集资产的ID。 |
version_id |
是 |
String |
AI Gallery中数据集资产的版本ID。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
scene |
是 |
String |
支持的标注格式场景,可选值如下:
|
format_name |
是 |
String |
不同标注场景下的标注格式。可选值如下:
|
parameters |
否 |
标注格式的高级参数,如样本分割符等。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
included_labels |
否 |
List of 表7 |
只导入包含指定标签的样本。 |
sample_label_separator |
否 |
String |
文本和标签之间的分割符。分隔符仅支持一个字符,必须为大小写字母,数字或@#¥%^&*_=|?/':.;,中的某一个字符,分割符需要转义。 |
label_separator |
否 |
String |
标签和标签之间的分割符。分隔符仅支持一个字符,必须为大小写字母,数字或@#¥%^&*_=|?/':.;,中的某一个字符,分割符需要转义。 |
difficult_only |
否 |
Boolean |
是否只导入难例。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
type |
是 |
Integer |
数据类型。可选值如下:
|
path |
是 |
String |
数据集输出位置,用于存放输出的标注信息等文件。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
标签名称。 |
type |
是 |
Integer |
标签类型,可选值如下:
|
property |
否 |
标签基本属性键值对,如颜色。 |