Beispiel #1
0
def test_gpr():
    gpr = IncrementalGaussianProcess()
    gpr.first_fit([get_add_skip_model().extract_descriptor()], [0.5])
    assert gpr.first_fitted

    gpr.incremental_fit([get_concat_skip_model().extract_descriptor()], [0.6])
    assert abs(gpr.predict(np.array([get_add_skip_model().extract_descriptor()]))[0] - 0.5) < 1e-4
    assert abs(gpr.predict(np.array([get_concat_skip_model().extract_descriptor()]))[0] - 0.6) < 1e-4
Beispiel #2
0
def test_gpr():
    gpr = IncrementalGaussianProcess()
    gpr.first_fit([get_add_skip_model().extract_descriptor()], [0.5])
    assert gpr.first_fitted

    gpr.incremental_fit([get_concat_skip_model().extract_descriptor()], [0.6])
    assert abs(
        gpr.predict(np.array([get_add_skip_model().extract_descriptor()]))[0] -
        0.5) < 1e-4
    assert abs(
        gpr.predict(np.array([get_concat_skip_model().extract_descriptor()]))
        [0] - 0.6) < 1e-4
Beispiel #3
0
def test_dense_wider_stub():
    graph = get_add_skip_model()
    graph.weighted = False
    layer_num = graph.n_layers
    graph.to_wider_model(32, 3)

    assert graph.n_layers == layer_num
Beispiel #4
0
def test_extract_descriptor_add():
    descriptor = get_add_skip_model().extract_descriptor()
    assert len(descriptor.layers) == 24
    assert descriptor.skip_connections == [
        (6, 10, NetworkDescriptor.ADD_CONNECT),
        (10, 14, NetworkDescriptor.ADD_CONNECT)
    ]
Beispiel #5
0
def test_dense_wider_stub():
    model = to_stub_model(get_add_skip_model())
    graph = Graph(model)
    layer_num = graph.n_layers
    graph.to_wider_model(graph.layer_to_id[model.layers[-2]], 3)

    assert graph.n_layers == layer_num
Beispiel #6
0
def test_dense_wider_stub():
    model = get_add_skip_model()
    graph = Graph(model, False)
    layer_num = graph.n_layers
    graph.to_wider_model(19, 3)

    assert graph.n_layers == layer_num
Beispiel #7
0
def test_dense_wider_stub():
    graph = get_add_skip_model()
    graph.weighted = False
    layer_num = graph.n_layers
    graph.to_wider_model(26, 3)

    assert graph.n_layers == layer_num
Beispiel #8
0
def test_produce_keras_model():
    for graph in [get_conv_dense_model(),
                  get_add_skip_model(),
                  get_pooling_model(),
                  get_concat_skip_model()]:
        model = graph.produce_keras_model()
        assert isinstance(model, keras.models.Model)
Beispiel #9
0
def test_keras_model():
    for graph in [get_conv_dense_model(),
                  get_add_skip_model(),
                  get_pooling_model(),
                  get_concat_skip_model()]:
        keras_model = KerasModel(graph)
        keras_model.set_weight_to_graph()
        assert isinstance(keras_model, KerasModel)
Beispiel #10
0
def test_extract_descriptor_add():
    descriptor = get_add_skip_model().extract_descriptor()
    assert descriptor.n_conv == 5
    assert descriptor.n_dense == 2
    assert descriptor.skip_connections == [
        (2, 3, NetworkDescriptor.ADD_CONNECT),
        (3, 4, NetworkDescriptor.ADD_CONNECT)
    ]
Beispiel #11
0
def test_copy_model():
    model = get_add_skip_model()
    new_model = Graph(model).produce_model()
    input_data = get_conv_data()

    output1 = model.predict_on_batch(input_data).flatten()
    output2 = new_model.predict_on_batch(input_data).flatten()

    assert np.sum(output1 - output2) == 0
Beispiel #12
0
def test_gpr():
    gpr = IncrementalGaussianProcess()
    gpr.first_fit(Graph(get_add_skip_model()).extract_descriptor(), 0.5)
    gpr.incremental_fit(
        Graph(get_concat_skip_model()).extract_descriptor(), 0.6)
    assert abs(
        gpr.predict(
            np.array([Graph(get_concat_skip_model()).extract_descriptor()]))[0]
        - 0.6) < 1e-4
Beispiel #13
0
def test_produce_keras_model():
    for graph in [
            get_conv_dense_model(),
            get_add_skip_model(),
            get_pooling_model(),
            get_concat_skip_model()
    ]:
        model = graph.produce_keras_model()
        assert isinstance(model, keras.models.Model)
Beispiel #14
0
def test_skip_concatenate():
    model = get_add_skip_model()
    graph = Graph(model)
    new_model = graph.to_concat_skip_model(model.layers[4], model.layers[4])
    input_data = get_conv_data()

    output1 = model.predict_on_batch(input_data).flatten()
    output2 = new_model.predict_on_batch(input_data).flatten()

    assert abs(np.sum(output1 - output2)) < 1e-4
Beispiel #15
0
def test_dense_wider():
    model = get_add_skip_model()
    graph = Graph(model)
    new_model = graph.to_wider_model(model.layers[-2], 3)
    input_data = get_conv_data()

    output1 = model.predict_on_batch(input_data).flatten()
    output2 = new_model.predict_on_batch(input_data).flatten()

    assert abs(np.sum(output1 - output2)) < 1e-4
Beispiel #16
0
def test_keras_model():
    for graph in [
            get_conv_dense_model(),
            get_add_skip_model(),
            get_pooling_model(),
            get_concat_skip_model()
    ]:
        keras_model = KerasModel(graph)
        keras_model.set_weight_to_graph()
        assert isinstance(keras_model, KerasModel)
Beispiel #17
0
def test_dense_wider():
    model = get_add_skip_model()
    graph = Graph(model, True)
    graph.to_wider_model(19, 3)
    new_model = graph.produce_model()
    input_data = get_conv_data()

    output1 = model.predict_on_batch(input_data).flatten()
    output2 = new_model.predict_on_batch(input_data).flatten()

    assert np.sum(np.abs(output1 - output2)) < 1e-4
Beispiel #18
0
def test_dense_wider():
    model = get_add_skip_model()
    graph = NetworkMorphismGraph(model)
    graph.to_wider_model(graph.layer_to_id[model.layers[-2]], 3)
    new_model = graph.produce_model()
    input_data = get_conv_data()

    output1 = model.predict_on_batch(input_data).flatten()
    output2 = new_model.predict_on_batch(input_data).flatten()

    assert np.sum(np.abs(output1 - output2)) < 1e-4
Beispiel #19
0
def test_dense_wider():
    graph = get_add_skip_model()
    model = graph.produce_model()
    graph = deepcopy(graph)
    graph.to_wider_model(32, 3)
    new_model = graph.produce_model()
    input_data = torch.Tensor(get_conv_data())

    model.eval()
    new_model.eval()

    output1 = model(input_data)
    output2 = new_model(input_data)

    assert (output1 - output2).abs().sum() < 1e-4
Beispiel #20
0
def test_dense_wider():
    graph = get_add_skip_model()
    model = graph.produce_model()
    graph = deepcopy(graph)
    graph.to_wider_model(26, 3)
    new_model = graph.produce_model()
    input_data = torch.Tensor(get_conv_data())

    model.eval()
    new_model.eval()

    output1 = model(input_data)
    output2 = new_model(input_data)

    assert (output1 - output2).abs().sum() < 1e-4
Beispiel #21
0
def test_edit_distance():
    descriptor1 = get_add_skip_model().extract_descriptor()
    descriptor2 = get_concat_skip_model().extract_descriptor()
    assert edit_distance(descriptor1, descriptor2) == 12.0
Beispiel #22
0
def test_wider_weighted_add():
    layer = get_add_skip_model().layers[10]
    new_layer = wider_weighted_add(layer, 4)
    assert isinstance(new_layer, WeightedAdd)
Beispiel #23
0
def test_edit_distance():
    descriptor1 = Graph(get_add_skip_model()).extract_descriptor()
    descriptor2 = Graph(get_concat_skip_model()).extract_descriptor()
    assert edit_distance(descriptor1, descriptor2, 1.0) == 2.0
Beispiel #24
0
def test_save_weighted_add():
    model = get_add_skip_model()
    path = 'tests/resources/temp/m.h5'
    model.save(path)
    load_model(path, {'WeightedAdd': WeightedAdd})
    os.remove(path)
Beispiel #25
0
def test_extract_descriptor_add():
    descriptor = get_add_skip_model().extract_descriptor()
    assert descriptor.n_conv == 5
    assert descriptor.n_dense == 2
    assert descriptor.skip_connections == [(2, 3, NetworkDescriptor.ADD_CONNECT), (3, 4, NetworkDescriptor.ADD_CONNECT)]
Beispiel #26
0
def test_wider_weighted_add():
    layer = StubAdd()
    layer.set_weights(get_add_skip_model().layers[13].get_weights())
    new_layer = wider_weighted_add(layer, 4)
    assert isinstance(new_layer, StubAdd)
Beispiel #27
0
def test_extract_descriptor_add():
    descriptor = get_add_skip_model().extract_descriptor()
    assert len(descriptor.layers) == 24
    assert descriptor.skip_connections == [(6, 10, NetworkDescriptor.ADD_CONNECT),
                                           (10, 14, NetworkDescriptor.ADD_CONNECT)]
Beispiel #28
0
def test_edit_distance():
    descriptor1 = get_add_skip_model().extract_descriptor()
    descriptor2 = get_concat_skip_model().extract_descriptor()
    assert edit_distance(descriptor1, descriptor2) == 12.0
Beispiel #29
0
def test_to_stub_model():
    model = get_add_skip_model()
    stub_model = to_stub_model(model)
    assert len(stub_model.layers) == 18
Beispiel #30
0
def test_graph_duplicate():
    assert same_graph(get_add_skip_model().extract_descriptor(),
                      get_add_skip_model().extract_descriptor())
    assert not same_graph(get_concat_skip_model().extract_descriptor(),
                          get_add_skip_model().extract_descriptor())
Beispiel #31
0
def test_graph_duplicate():
    assert same_graph(get_add_skip_model().extract_descriptor(), get_add_skip_model().extract_descriptor())
    assert not same_graph(get_concat_skip_model().extract_descriptor(), get_add_skip_model().extract_descriptor())