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 ...
PyG为数据集提供了三个抽象类:Data、InMemoryDataset和Dataset。 torch_geometric.data.Data:用户只需要在程序运行中动态创建合成数据且不需要将数据以pt文件形式保存到磁盘时,直接可以在读取所有外部文件数据集后,只需传递一个包含torch_geometry.data.Data的常规python列表数据对象,并将其传递给torch_geometry.Data.data...
name='Cora')print(dataset)#打印出cora数据集图的个数print(len(dataset))#cora总共有1张图#打印出cora数据集图的类别数量print(dataset.num_classes)#打印出cora数据集的图的每个节点的特征个数print(dataset.num_node_features)#获得这张图data=dataset[0]print(data)#判断Cora是否是无向...
name='ENZYMES')# ENZYMES 数据集包含600个图,所有图可分为6个类型len(dataset)# 600dataset.num_classes# 6dataset.num_node_features# 3dataset[0]# 查看第一个图的基本信息# Data(edge_index=[2, 168], x=[37, 3], y=[1])dataset[0].is_undirected()# True...
path=osp.join(osp.dirname(osp.realpath(__file__)),'..','data','DBLP')dataset=DBLP(path)graph=dataset[0]print(graph) 输出如下: HeteroData(author={x=[4057,334],y=[4057],train_mask=[4057],val_mask=[4057],test_mask=[4057]},paper={x=[14328,4231]},term={x=[7723,50]},conferenc...
data.has_isolated_nodes()data.has_self_loops()data.is_directed()... 异质图:https://pytorch-geometric.readthedocs.io/en/latest/generated/torch_geometric.data.HeteroData.html#torch_geometric.data.HeteroData 数据集InMemoryDataset https://pytorch-geometric.readthedocs.io/en/latest/notes/create_dataset...
在官方的数据集中,划分「训练集」和「测试集」的方式是创建一张大图,然后指定训练节点以及测试节点,通过train_mask和test_mask来实现。 代码语言:javascript 复制 from torch_geometric.datasetsimportPlanetoid dataset=Planetoid(root='/tmp/Cora',name='Cora')data=dataset[0]>>>Data(edge_index=[2,10556],test...
data=dataset[0]print(data)# 随机打乱数据集 dataset=dataset.shuffle() 1.1.3 如何加载数据集 真正的图神经网络训练中我们一般是加载数据集中的一部分到内存中训练图神经网络,叫做一个batch,那么PyG如何加载一个batch呢,PyG会根据我们的数据集将其分割为我们指定的batch大小 ...
data = dataset[0] # Get the first graph object. print(data) print('===') # Gather some statistics about the graph. print(f'Number of nodes: {data.num_nodes}') print(f'Number of edges: {data.num_edges}') print(f'Average node degree: {data.num...
model = Net(dataset.num_features, 128, 64).to(device)optimizer = torch.optim.Adam(params=model.parameters(), lr=0.01)criterion = torch.nn.BCEWithLogitsLoss()model = train_link_predictor(model, train_data, val_data, optimizer, criterion)test_auc = eval_link_predictor(model, test_data)...