in src/sagemaker/FD_SL_DGL/gnn_fraud_detection_dgl/pytorch_model.py [0:0]
def __init__(self, ntype_dict, etypes, in_size, hidden_size, out_size, n_layers, embedding_size):
super(HeteroRGCN, self).__init__()
# Use trainable node embeddings as featureless inputs.
embed_dict = {ntype: nn.Parameter(torch.Tensor(num_nodes, in_size))
for ntype, num_nodes in ntype_dict.items() if ntype != 'target'}
for key, embed in embed_dict.items():
nn.init.xavier_uniform_(embed)
self.embed = nn.ParameterDict(embed_dict)
# create layers
self.layers = nn.ModuleList()
self.layers.append(HeteroRGCNLayer(embedding_size, hidden_size, etypes))
# hidden layers
for i in range(n_layers - 1):
self.layers.append(HeteroRGCNLayer(hidden_size, hidden_size, etypes))
# output layer
self.layers.append(nn.Linear(hidden_size, out_size))