Unofficial Reimplementation of "Semi-Supervised Classification with Graph Convolutional Networks"12 in PyTorch.
input= ...
adj= ...
n_nodes=adj.size(0) # or n_nodes = input.size(1)n_features=input.size(-1)
h1_features= ...
h2_features= ...
conv1=nn.Sequential(LinearGraphConv(n_features, h1_features), nn.ReLU())
conv2=nn.Sequential(LinearGraphConv(h1_features, h2_features), nn.ReLU())
output=conv2((conv1((input, adj)), adj))input= ...
adj_sparse_coo= ... n_nodes=adj.size(0) # or n_nodes = input.size(1)n_features=input.size(-1)
h1_features= ...
h2_features= ...
conv1=nn.Sequential(SparseLinearGraphConv(n_features, h1_features), nn.ReLU())
conv2=nn.Sequential(SparseLinearGraphConv(h1_features, h2_features), nn.ReLU())
output=conv2((conv1((input, adj_sparse_coo)), adj_sparse_coo))Add Cora dataset example.