
# 创建数据集
创建数据集，支持从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)
  ```
  
![](https://support.huaweicloud.com/sdkreference-modelarts/public_sys-resources/note_3.0-zh-cn.png)
推荐使用根据数据类型创建数据集，根据标注类型创建数据集的功能将会下线。
#### 示例代码
- 示例一：根据数据类型创建图像数据集
  ```
  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)
  ```
  
 
#### 参数说明
表1请求参数 
| 参数           | 是否必选 | 参数类型                                                             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| session      | 是    | Object                                                           | 会话对象，初始化方法请参见[Session鉴权](https://support.huaweicloud.com/sdkreference-modelarts/modelarts_04_0123.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| dataset_name | 是    | String                                                           | 数据集名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| data_type    | 否    | String                                                           | 数据集的数据类型，与dataset_type参数二选一，推荐使用data_type。可选值如下： - IMAGE：图像  - TEXT：文本  - AUDIO：音频  - TABLE：表格  - VIDEO：视频  - PLAIN：自由格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| dataset_type | 否    | Integer                                                          | 根据数据集类型查询数据集列表，与data_type参数二选一。可选值如下： - 0：图像分类  - 1：物体检测  - 3: 图像分割  - 100：文本分类  - 101：命名实体  - 102：文本三元组  - 200：声音分类  - 201：语音内容  - 202：语音分割  - 400：表格数据集  - 600：视频标注  - 900：自由格式   |
| data_sources | 是    | [表2]         | 数据集输入位置，用于将此目录及子目录下的源数据(如图片/文件/音频等)同步到数据集。对于表格数据集，该参数为导入目录。表格数据集的工作目录不支持为KMS加密桶下的OBS路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| work_path    | 是    | [表6]          | 数据集输出位置，用于存放输出的标注信息等文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| labels       | 否    | List of [表7]   | 数据集标签列表，创建文本三元组标注类型的数据集时需要传递该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| schema       | 否    | List of [表9] | schema列表，用于表格数据集，指定表头的名称和类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| description  | 否    | String                                                           | 数据集描述，默认为空，描述不能包含\^!\<\>=\&"'等特殊字符，长度为0-256。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表2DataSource参数 
| 参数                 | 是否必选 | 参数类型                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| type               | 是    | Integer                                                  | 数据类型。可选值如下： - 0：OBS桶（默认值）  - 5：AI Gallery下载数据集                                                                                                                                                                                                                     |
| path               | 是    | String                                                   | 数据源所在路径。 - 字符限制：不允许出现的特殊字符有换行符(\\n)、回车符(\\r)、制表符(\\t)。                                                                                                                                                                                                                                                                                                             |
| content_info       | 否    | [表3]   | 从AI Gallery下载数据集时数据集资产的信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| annotation_config  | 否    | [表4] | 数据标注格式的说明。目前支持的标注格式类型如下： - 图像分类  - 物体检测  - 文本分类  - 声音分类   |
| with_column_header | 否    | Boolean                                                  | 表格数据集必选参数，表格的第一行是否为表头。 - True：第一行数据作为表头  - False：第一行数据不作为表头，仅为样本数据                                                                                                                                                                                               |
   
 表3ContentInfo参数 
| 参数         | 是否必选 | 参数类型   | 描述                     |
|:---|:---|:---|:---|
| content_id | 是    | String | AI Gallery中数据集资产的ID。   |
| version_id | 是    | String | AI Gallery中数据集资产的版本ID。 |
   
 表4AnnotationConfig参数 
| 参数          | 是否必选 | 参数类型                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| scene       | 是    | String                                                   | 支持的标注格式场景，可选值如下： - image_classification：图像分类  - object_detection：物体检测  - text_classification：文本分类  - audio_classification：声音分类                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| format_name | 是    | String                                                   | 不同标注场景下的标注格式。可选值如下： - image_classification - ModelArts imageNet 1.0  - ModelArts image classification 1.0    - object_detection - ModelArts PASCAL VOC 1.0  - YOLO    - text_classification - ModelArts text classification 1.0  - ModelArts text classification combine 1.0    - audio_classification - ModelArts audio classification dir 1.0     |
| parameters  | 否    | [表5] | 标注格式的高级参数，如样本分隔符等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表5AnnotationConfigParam参数 
| 参数                     | 是否必选 | 参数类型                                                           | 描述                                                                       |
|:---|:---|:---|:---|
| included_labels        | 否    | List of [表7] | 只导入包含指定标签的样本。                                                            |
| sample_label_separator | 否    | String                                                         | 文本和标签之间的分隔符。分隔符仅支持一个字符，必须为大小写字母，数字或@#￥%\^\&\*_=\|?/':.;,中的某一个字符，分隔符需要转义。 |
| label_separator        | 否    | String                                                         | 标签和标签之间的分隔符。分隔符仅支持一个字符，必须为大小写字母，数字或@#￥%\^\&\*_=\|?/':.;,中的某一个字符，分割符需要转义。 |
| difficult_only         | 否    | Boolean                                                        | 是否只导入难例。                                                                 |
   
 表6WorkPath参数 
| 参数   | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| type | 是    | Integer | 数据类型。可选值如下： - 0：OBS桶（默认值）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| path | 是    | String  | 数据集输出位置，用于存放输出的标注信息等文件。 - 格式为 "/桶名称/文件路径"，例如"/obs-bucket/flower/rose/"（使用目录作为路径）。  - 不能直接使用桶作为路径。  - 输出位置不能与输入位置相同或者是输入位置的子目录。  - 长度限制：不少于3字符，不能超过700个字符。  - 字符限制：不允许出现的特殊字符有换行符(\\n)、回车符(\\r)、制表符(\\t)。   |
   
 表7Label参数 
| 参数       | 是否必选 | 参数类型                                                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| name     | 是    | String                                                | 标签名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| type     | 是    | Integer                                               | 标签类型，可选值如下： - 0：图像分类  - 1：物体检测  - 3: 图像分割  - 100：文本分类  - 101：命名实体标签  - 102：文本三元组关系标签  - 200：声音分类  - 201：语音内容  - 202：语音分割  - 600：视频标注   |
| property | 否    | [表8] | 标签基本属性键值对，如颜色。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表8LabelProperty参数 
| 参数                   | 是否必选 | 参数类型   | 描述                                              |
|:---|:---|:---|:---|
| @modelarts:color     | 否    | String | 内置属性：标签展示的颜色，为色彩的16进制代码，默认为空。例如："#FFFFF0"。      |
| @modelarts:from_type | 否    | String | 内置属性：三元组关系标签的起始实体类型，创建关系标签时必须指定，该参数仅文本三元组数据集使用。 |
| @modelarts:to_type   | 否    | String | 内置属性：三元组关系标签的指向实体类型，创建关系标签时必须指定，该参数仅文本三元组数据集使用。 |
   
 表9Schema参数 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| schema_id   | 否    | Integer | Schema ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| name        | 否    | String  | Schema名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| type        | 否    | String  | Schema值类型，可选值如下： - STRING  - SHORT  - INT  - LONG  - DOUBLE  - FLOAT  - BYTE  - DATE  - TIMESTAMP  - BOOLEAN   |
| description | 否    | String  | Schema描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
