I have two questions about the weight in rgcn_hetero example:
(1) why set the weight of i2h layer to false and set the weight of h2o layer to true?
# i2h
self.layers.append(RelGraphConvLayer(
self.h_dim, self.h_dim, self.rel_names,
self.num_bases, activation=F.relu, self_loop=self.use_self_loop,
dropout=self.dropout, **weight=False**))
# h2o
self.layers.append(RelGraphConvLayer(
self.h_dim, self.out_dim, self.rel_names,
self.num_bases, activation=None,
self_loop=self.use_self_loop))
(2) Why use the external weight but not directly use the weight defined by GraphConv itself? What is the advantage of such setting. Thank you.
self.conv = dglnn.HeteroGraphConv({
rel : dglnn.GraphConv(in_feat, out_feat, norm='right', **weight=False**, bias=False)
for rel in rel_names
})