YAML 规范
本文档描述了用于OnDiskDataset的metadata.yaml文件的YAML规范。metadata.yaml文件用于指定数据集信息,包括图结构、特征数据和任务。
dataset_name: <string>
graph:
nodes:
- type: <string>
num: <int>
- type: <string>
num: <int>
edges:
- type: <string>
format: <string>
path: <string>
- type: <string>
format: <string>
path: <string>
feature_data:
- domain: node
type: <string>
name: <string>
format: <string>
in_memory: <bool>
path: <string>
- domain: node
type: <string>
name: <string>
format: <string>
in_memory: <bool>
path: <string>
- domain: edge
type: <string>
name: <string>
format: <string>
in_memory: <bool>
path: <string>
- domain: edge
type: <string>
name: <string>
format: <string>
in_memory: <bool>
path: <string>
tasks:
- name: <string>
num_classes: <int>
train_set:
- type: <string>
data:
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
validation_set:
- type: <string>
data:
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
test_set:
- type: <string>
data:
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
- name: <string>
format: <string>
in_memory: <bool>
path: <string>
dataset_name
dataset_name 字段用于指定数据集的名称。它是用户定义的。
graph
graph 字段用于指定图结构。它有两个字段:
nodes 和 edges。
nodes:list
nodes字段用于指定每种节点类型的节点数量。 它是一个node对象的列表。每个node对象有两个字段:type和num。
type:string, 可选
type字段用于指定节点类型。对于同构图,它是null。对于异构图,它是节点类型。
num:int
num字段用于指定节点类型的节点数量。 对于同构图和异构图都是必需的。
edges:list
edges字段用于指定边。它是一个edge对象的列表。每个edge对象有三个字段:type、format和path。 -type:string, 可选
type字段用于指定边的类型。对于同构图,它是null。对于异构图,它是边的类型。
format:string
format字段用于指定边缘数据的格式。它可以是csv或numpy。如果是csv,则不需要index和header字段。如果是numpy,则数组需要是(2, num_edges)的形状。对于大型图,推荐使用numpy格式。
path:string
path字段用于指定边缘数据的路径。它是相对于metadata.yaml文件目录的。
feature_data
feature_data 字段用于指定特征数据。它是一个包含 feature 对象的列表。每个 feature 对象有五个标准字段:domain、type、name、format 和 path。任何其他字段都将传递给 Feature.metadata 对象。
domain:string
domain字段用于指定特征数据的域。它可以是node或edge。
type:string, optional
type字段用于指定特征数据的类型。对于同构图,它是null。对于异构图,它是节点或边的类型。
name:string
name字段用于指定特征数据的名称。它是用户定义的。
format:string
format字段用于指定特征数据的格式。它可以是numpy或torch。
in_memory:bool, 可选
in_memory字段用于指定是否将特征数据加载到内存中。它可以是true或false。默认值为true。
path:string
path字段用于指定特征数据的路径。它是相对于metadata.yaml文件目录的。
tasks
tasks 字段用于指定任务。它是一个 task 对象的列表。每个 task 对象至少有三个字段:train_set、validation_set、test_set。你可以自由添加其他字段,例如 num_classes,所有这些字段都将传递给 Task.metadata 对象。
name:string, 可选
name字段用于指定任务的名称。它是用户定义的。
num_classes:int, 可选
num_classes字段用于指定任务的类别数量。
train_set:list
train_set字段用于指定训练集。它是一个set对象的列表。每个set对象有两个字段:type和data。
type:string, optional
type字段用于指定集合的节点/边类型。对于同质图,它是null。对于异质图,它是节点或边的类型。
data:list
data字段用于加载train_set。它是一个data对象的列表。每个data对象有四个字段:name、format、in_memory和path。
name:string
name字段用于指定数据的名称。它是必需的,并用于指定MiniBatch的数据字段以进行采样。它可以是seeds、labels或indexes。如果使用其他名称,它将被添加到MiniBatch的数据字段中。
format:string
format字段用于指定数据的格式。它可以是numpy或torch。
in_memory:bool, optional
in_memory字段用于指定数据是否加载到内存中。它可以是true或false。默认值为true。
path:string
path字段用于指定数据的路径。它是相对于metadata.yaml文件所在目录的。
validation_set:list
test_set:list
validation_set和test_set字段分别用于指定验证集和测试集。它们与train_set字段类似。