gnn =GNN(train_g.x.size()[1], conv_sizes=[512,256,128])with th.no_grad():
out =gnn(train_g.x, train_g.edge_index)
out
>tensor([[0.0000,0.0000,0.0051,...,0.0997,0.0000,0.0000],[0.0107,0.0000,0.0576,...,0.0651,0.0000,0.0000],[0.0000,0.0000,0.0102,...,0.0973,0.0000,0.0000],...,[0.0000,0.0000,0.0549,...,0.0671,0.0000,0.0000],[0.0000,0.0000,0.0166,...,0.0000,0.0000,0.0000],[0.0000,0.0000,0.0034,...,0.1111,0.0000,0.0000]])
train_loader = tg.loader.LinkNeighborLoader(
train_g,
num_neighbors=[-1,10,5],
batch_size=128,
edge_label_index=train_g.edge_label_index,
# "on the fly" negative sampling creation for batch
neg_sampling_ratio=0.5)
val_loader = tg.loader.LinkNeighborLoader(
val_g,
num_neighbors=[-1,10,5],
batch_size=128,
edge_label_index=val_g.edge_label_index,
edge_label=val_g.edge_label,
# negative samples for val set are done already as ground-truth
neg_sampling_ratio=0.0)
test_loader = tg.loader.LinkNeighborLoader(
test_g,
num_neighbors=[-1,10,5],
batch_size=128,
edge_label_index=test_g.edge_label_index,
edge_label=test_g.edge_label,
# negative samples for test set are done already as ground-truth
neg_sampling_ratio=0.0)
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
下面就是训练模型
model =LinkPredModel(val_g.x.size()[1], conv_sizes=[512,256,128])
trainer = pl.Trainer(max_epochs=20, log_every_n_steps=5)
# Validate before training - we will see results of untrained model.
trainer.validate(model, val_loader)
# Train the model
trainer.fit(model=model, train_dataloaders=train_loader, val_dataloaders=val_loader)