PyG中的数据集Cora等

https://blog.csdn.net/weixin_34570232/article/details/114452066

数据集

PyTorch Geometric已经包含有很多常见的基准数据集,包括:

Cora:一个根据科学论文之间相互引用关系而构建的Graph数据集合,论文分为7类:Genetic_Algorithms,Neural_Networks,Probabilistic_Methods,Reinforcement_Learning,Rule_Learning,Theory,共2708篇;

Citeseer:一个论文之间引用信息数据集,论文分为6类:Agents、AI、DB、IR、ML和HCI,共包含3312篇论文;

Pubmed:生物医学方面的论文搜寻以及摘要数据集。

以及网址中的数据集等等。

初始化这样的一个数据集也很简单,会自动下载对应的数据集然后处理成需要的格式,例如ENZYMES dataset (覆盖6大类的600个图,可用于graph-level的分类任务):

from torch_geometric.datasets import TUDataset

dataset = TUDataset(root='/tmp/ENZYMES', name='ENZYMES')

>>> ENZYMES(600)

len(dataset)

>>> 600

dataset.num_classes

>>> 6

dataset.num_node_features

>>> 3

对于其中的第一个图,可以这样取得:

data = dataset[0]

>>> Data(edge_index=[2, 168], x=[37, 3], y=[1])

#可以看出这个图包含边168/2=84条,节点37个,每个节点包含三个特征

data.is_undirected()

>>> True

再看一个node-level的数据集

from torch_geometric.datasets import Planetoid

dataset = Planetoid(root='/tmp/Cora', name='Cora')

>>> Cora()

#可以看到这个数据集只有一个图

len(dataset)

>>> 1

dataset.num_classes

>>> 7

dataset.num_node_features

>>> 1433

#train_mask

data = dataset[0]

>>> Data(edge_index=[2, 10556], test_mask=[2708],

train_mask=[2708], val_mask=[2708], x=[2708, 1433], y=[2708])

#用来训练的数据量

data.train_mask.sum().item()

>>> 140

#用来验证的数据量

data.val_mask.sum().item()

>>> 500

#用来测试的数据量

data.test_mask.sum().item()

>>> 1000

完整示例

下面再来看一个完整的例子:

import torch

import torch

import torch.nn.functional as F

from torch_geometric.nn import GCNConv

#数据集加载

from torch_geometric.datasets import Planetoid

dataset = Planetoid(root='/tmp/Cora', name='Cora')

#网络定义

class Net(torch.nn.Module):

def __init__(self):

super(Net, self).__init__()

self.conv1 = GCNConv(dataset.num_node_features, 16)

self.conv2 = GCNConv(16, dataset.num_classes)

def forward(self, data):

x, edge_index = data.x, data.edge_index

x = self.conv1(x, edge_index)

x = F.relu(x)

x = F.dropout(x, training=self.training)

x = self.conv2(x, edge_index)

return F.log_softmax(x, dim=1)

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

model = Net().to(device)

data = dataset[0].to(device)

optimizer = torch.optim.Adam(model.parameters(), lr=0.01, weight_decay=5e-4)

#网络训练

model.train()

for epoch in range(200):

optimizer.zero_grad()

out = model(data)

loss = F.nll_loss(out[data.train_mask], data.y[data.train_mask])

loss.backward()

optimizer.step()

#测试

model.eval()

_, pred = model(data).max(dim=1)

correct = float(pred[data.test_mask].eq(data.y[data.test_mask]).sum().item())

acc = correct / data.test_mask.sum().item()

print('Accuracy: {:.4f}'.format(acc))


————————————————
版权声明:本文为CSDN博主「Vanessa Chen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_34570232/article/details/114452066

https://blog.csdn.net/weixin_39617497/article/details/111614670

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于python实现CORA数据集节点级分类项目源码(用GCN、SVM、FNN模型)+项目运行说明.zip - 数据集CORA数据集 - 任务:多分类 - 使用模型GCN SVM FNN - 包括构图、数据预处理及feature encoding 依赖库安装 ``` pip install requirements.txt # 以下4个库可能会安装失败 torch-scatter torch-sparse torch-cluster torch-spline-conv # 如果出现安装失败的提示,按照如下操作解决 # 1.获取cuda版本 # 2.使用如下命令安装 将${cuda}替换为自己的cuda版本即可,如果没有cuda环境,则将其替换为空字符串,安装cpu版本 pip install torch-scatter -f https://pytorch-geometric.com/whl/torch-${cuda}.html pip install torch-sparse -f https://pytorch-geometric.com/whl/torch-${cuda}.html pip install torch-cluster -f https://pytorch-geometric.com/whl/torch-${cuda}.html pip install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-${cuda}.html ``` ### 程序运行 ``` 移动到main.py所在目录,执行命令: python main.py 等待命令执行完毕,大概需要运行3分钟左右 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值