def __init__(self, mlp_layers, N, f_dict): super(RecurrentGraphEmbeddingRDS, self).__init__(f_dict) self.N = N model_fn = gn.mlp_fn(mlp_layers) self.component = 'RDS' self.gnn1 = gn.DeepSetPlus( gn.DS_NodeModel(self.fx, self.fu, model_fn, self.fx), gn.DS_GlobalModel(self.fx, self.fu, model_fn, self.fu)) self.gnn2 = gn.DeepSetPlus( gn.DS_NodeModel(self.fx, 2 * self.fu, model_fn, self.fx), gn.DS_GlobalModel(self.fx, 2 * self.fu, model_fn, self.fu)) self.mlp = model_fn(self.fu, self.fout)
def __init__(self, mlp_layers, N, f_dict): super(RecurrentGraphEmbeddingRDSv2, self).__init__(f_dict) model_fn = gn.mlp_fn(mlp_layers) self.N = N self.component = 'RDS' self.proj = torch.nn.Linear(self.fx, self.h) self.gnn1 = gn.DeepSetPlus( gn.DS_NodeModel(self.h, self.h, model_fn, self.h), gn.DS_GlobalModel(self.h, self.h, model_fn, self.h)) self.gnn2 = gn.DeepSetPlus( gn.DS_NodeModel(self.h, 2 * self.h, model_fn, self.h), gn.DS_GlobalModel(self.h, 2 * self.h, model_fn, self.h)) self.mlp = model_fn(self.h, self.fout)
def __init__(self, mlp_layers, N, f_dict): super(AlternatingDoubleRDS, self).__init__(f_dict) model_fn = gn.mlp_fn(mlp_layers) self.N = N self.component = 'RDS' # f_e, f_x, f_u, f_out = self.get_features(f_dict) self.gnn1 = gn.DeepSetPlus( gn.DS_NodeModel(self.fx, 2 * self.fu, model_fn, self.fx), gn.DS_GlobalModel(self.fx, 2 * self.fu, model_fn, self.fu)) self.gnn2 = gn.DeepSetPlus( gn.DS_NodeModel(self.fx, 2 * self.fu, model_fn, self.fx), gn.DS_GlobalModel(self.fx, 2 * self.fu, model_fn, self.fu)) self.mlp = model_fn(2 * self.fu, self.fout)
def __init__(self, mlp_layers, N, f_dict): super(DeepSetPlus_A, self).__init__(f_dict) self.N = N # we allow multiple rounds mlp_fn = gn.mlp_fn(mlp_layers) self.deepset = gn.DeepSetPlus( gn.DS_NodeModel(self.fx, self.fu, mlp_fn, self.fx), gn.DS_GlobalModel_A(self.fx, self.fu, self.h, mlp_fn, self.fu)) self.mlp = mlp_fn(self.fu, self.fout)