【PyG-dataset:TUDataset返回的数据格式】

PyG-dataset:TUDataset返回的数据格式

TUDataset(root,name,cleand)
class中的处理,处理成需要的数据格式,是在process中:

 def process(self):
        self.data, self.slices = read_tu_data(self.raw_dir, self.name)

        if self.pre_filter is not None:
            data_list = [self.get(idx) for idx in range(len(self))]
            data_list = [data for data in data_list if self.pre_filter(data)]
            self.data, self.slices = self.collate(data_list)

        if self.pre_transform is not None:
            data_list = [self.get(idx) for idx in range(len(self))]
            data_list = [self.pre_transform(data) for data in data_list]
            self.data, self.slices = self.collate(data_list)

        torch.save((self.data, self.slices), self.processed_paths[0])

1.在此之前在download函数中,先下载数据到root指定的路径,然后在io.read_to_data中将这些数据读出来,以一定格式返回,读的这些文件是从TUDataset中下载的,以protein为例,其中的文件包括:

在这里插入图片描述
其中A.txt是稀疏邻接矩阵的格式,一行就表示一条边的连接
graph_indicator.txt指明对应位置的节点属于哪张图
graph_lable、node_lable就是图和节点的lable(节点的id是唯一的,加入有n张图,每张图k个节点,那么在记录中,所有节点的id是从1到nk)
2.io.read_to_data返回的是

    data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr, y=y)
    data, slices = split(data, batch)

    return data, slices

(1)其中的data = Data(x=x, edge_index=edge_index, edge_attr=edge_attr, y=y)

  • edge_index从A.txt文件中读取,其中去除了自环,在去除重复的节点特征时,返回了新的稀疏邻接矩阵,同时,将其中的每张图的节点编号偏移回0(因为文件中的节点编号是所有节点一起编号,导致除了第一张图,其他图的节点起始序号都不是0)
#去除重复节点的函数中,返回的index部分,还是稀疏矩阵的格式
torch.stack([storage.row(), storage.col()], dim=0)
  • x是cat([node_attributes, node_labels])
    其中,node_labels进行了保证其从0开始的处理,x的最终是tensor[node_attribute,node_lable]的格式,其中node_lable是one_hot的格式
  • edge_attr和node_attr类似
  • y返回的依然是从0开始的标签
    (2)其中的slices具有edge_index,x,y三个内容
  • edge_index是一个节点对应的边的始末
  • x是一张图对应的节点始末的id,比如[0,3,8],表示第一张图从节点0开始,2结束,第二张图从3开始,到7结束(标号从0开始)
  • y是图的标号,4张图,返回的是0,1,2,3,4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值