I’m starting to learn about DGL, and I’m wondering if it’s possible to have parameters that can be learned as part of the messages that get sent (before they are reduced). For example,
def gcn_message(edges):
    # Can we put a learnable function that we apply to edges.src['h'] here?
    return {'msg' : edges.src['h']}

class GCNLayer(nn.Module):
    def __init__(self, in_feats, out_feats):
        super(GCNLayer, self).__init__()

    def forward(self, g, inputs):
        g.ndata['h'] = inputs
        g.send(g.edges(), gcn_message)
        g.recv(g.nodes(), gcn_reduce)
        h = g.ndata.pop('h')
        return self.linear(h)

I hope my question is clear. Perhaps there is a better place to be asking about DGL?