def test_gc_lstm_layer(): """ Testing the GCLSTM Layer. """ number_of_nodes = 100 edge_per_node = 10 in_channels = 64 out_channels = 16 K = 2 X, edge_index = create_mock_data(number_of_nodes, edge_per_node, in_channels) edge_weight = create_mock_edge_weight(edge_index) layer = GCLSTM(in_channels=in_channels, out_channels=out_channels, K=K) H, C = layer(X, edge_index) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels) H, C = layer(X, edge_index, edge_weight) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels) H, C = layer(X, edge_index, edge_weight, H, C) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels)
def test_gc_lstm_layer(): """ Testing the GCLSTM Layer. """ number_of_nodes = 100 edge_per_node = 10 in_channels = 64 out_channels = 16 K = 2 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") X, edge_index = create_mock_data(number_of_nodes, edge_per_node, in_channels) X = X.to(device) edge_index = edge_index.to(device) edge_weight = create_mock_edge_weight(edge_index).to(device) layer = GCLSTM(in_channels=in_channels, out_channels=out_channels, K=K).to(device) H, C = layer(X, edge_index) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels) H, C = layer(X, edge_index, edge_weight) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels) H, C = layer(X, edge_index, edge_weight, H, C) assert H.shape == (number_of_nodes, out_channels) assert C.shape == (number_of_nodes, out_channels)
def __init__(self, h, z, k): super(IGNNK, self).__init__() self.time_dimension = h self.hidden_dimnesion = z self.order = k self.recurrent = TGCN(h, 32).to(torch.device("cuda:0")) # self.recurrent = AGCRN(number_of_nodes = 64, # in_channels = h, # out_channels = 32, # K = 2, # embedding_dimensions = 4) self.recurrent = GCLSTM(64, 32, 1) self.GNN1 = D_GCN(self.time_dimension, self.hidden_dimnesion, self.order)
def __init__(self, node_features): super(RecurrentGCN, self).__init__() self.recurrent = GCLSTM(node_features, 32, 1) self.linear = torch.nn.Linear(32, 1)
def __init__(self, node_features, num_classes): super(RecurrentGCN, self).__init__() self.recurrent_1 = GCLSTM(node_features, 32, 5) self.recurrent_2 = GCLSTM(32, 16, 5) self.linear = torch.nn.Linear(16, num_classes)