def test_gpr(): gpr = IncrementalGaussianProcess(1.0) gpr.first_fit([Graph(get_add_skip_model()).extract_descriptor()], [0.5]) assert gpr.first_fitted 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
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
def test_extract_descriptor_concat(): descriptor = get_concat_skip_model().extract_descriptor() assert len(descriptor.layers) == 32 assert descriptor.skip_connections == [ (6, 10, NetworkDescriptor.CONCAT_CONNECT), (13, 17, NetworkDescriptor.CONCAT_CONNECT) ]
def test_extract_descriptor_concat(): model = get_concat_skip_model() descriptor = Graph(model).extract_descriptor() assert descriptor.n_conv == 5 assert descriptor.n_dense == 2 assert descriptor.skip_connections == [(2, 3, NetworkDescriptor.CONCAT_CONNECT), (3, 4, NetworkDescriptor.CONCAT_CONNECT)]
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)
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)
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)
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)
def test_conv_wider(): model = get_concat_skip_model() graph = Graph(model, True) graph.to_wider_model(6, 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)) < 4e-1
def test_conv_wider(): model = get_concat_skip_model() graph = NetworkMorphismGraph(model) graph.to_wider_model(graph.layer_to_id[model.layers[4]], 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)) < 4e-1
def test_conv_wider(): graph = get_concat_skip_model() model = graph.produce_model() graph = deepcopy(graph) graph.to_wider_model(5, 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-1
def test_conv_wider(): graph = get_concat_skip_model() model = graph.produce_model() graph = deepcopy(graph) graph.to_wider_model(4, 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-1
def test_extract_descriptor_concat(): descriptor = get_concat_skip_model().extract_descriptor() assert len(descriptor.layers) == 32 assert descriptor.skip_connections == [(6, 10, NetworkDescriptor.CONCAT_CONNECT), (13, 17, NetworkDescriptor.CONCAT_CONNECT)]
def test_to_stub_model_exception(): model = get_concat_skip_model() stub_model = to_stub_model(model) with pytest.raises(Exception) as e: to_stub_model(stub_model) assert e.type is TypeError
def test_to_stub_model2(): model = get_concat_skip_model() stub_model = to_stub_model(model) assert len(stub_model.layers) == 21
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
def test_extract_descriptor_concat(): descriptor = get_concat_skip_model().extract_descriptor() assert descriptor.n_conv == 5 assert descriptor.n_dense == 2 assert descriptor.skip_connections == [(2, 3, NetworkDescriptor.CONCAT_CONNECT), (3, 4, NetworkDescriptor.CONCAT_CONNECT)]
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
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())