PetarV- / GAT

Graph Attention Networks (https://arxiv.org/abs/1710.10903)
https://petar-v.com/GAT/
MIT License
3.15k stars 643 forks source link

optimize adj_to_bias #47

Open aloyschen opened 4 years ago

aloyschen commented 4 years ago

function adj_to_bias speed too slow because of the for loop I think it can be optimized as follows:

def adj_to_bias(adj, nhood=1):
    nb_graphs = adj.shape[0]
    mt = np.empty(adj.shape)
    for g in range(nb_graphs):
        mt[g] = np.eye(adj.shape[1])
        for _ in range(nhood):
            mt[g] = np.matmul(mt[g], (adj[g] + np.eye(adj.shape[1])))
        mt[g][mt[g] > 0.0] = 1.0
    return -1e9 * (1.0 - mt)