コード例 #1
0
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)
コード例 #2
0
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)
コード例 #3
0
    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)
コード例 #4
0
 def __init__(self, node_features):
     super(RecurrentGCN, self).__init__()
     self.recurrent = GCLSTM(node_features, 32, 1)
     self.linear = torch.nn.Linear(32, 1)
コード例 #5
0
 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)