예제 #1
0
def test_include_top_false():
    hp = hp_module.HyperParameters()
    hypermodel = xception.HyperXception(input_shape=(256, 256, 3),
                                        classes=10,
                                        include_top=False)
    model = hypermodel.build(hp)
    assert not model.optimizer
예제 #2
0
def test_input_tensor():
    hp = hp_module.HyperParameters()
    inputs = tf.keras.Input((256, 256, 3))
    hypermodel = xception.HyperXception(
        input_tensor=inputs, include_top=False)
    model = hypermodel.build(hp)
    assert model.inputs == [inputs]
예제 #3
0
def test_hyperparameter_override():
    hp = hp_module.HyperParameters()
    hp.Choice("pooling", ["flatten"])
    hp.Choice("num_dense_layers", [2])
    hypermodel = xception.HyperXception(input_shape=(256, 256, 3), classes=10)
    hypermodel.build(hp)
    assert hp.get("pooling") == "flatten"
    assert hp.get("num_dense_layers") == 2
예제 #4
0
def test_hyperparameter_override():
    hp = hp_module.HyperParameters()
    hp.Choice('pooling', ['flatten'])
    hp.Choice('num_dense_layers', [2])
    hypermodel = xception.HyperXception(input_shape=(256, 256, 3), classes=10)
    hypermodel.build(hp)
    assert hp.get('pooling') == 'flatten'
    assert hp.get('num_dense_layers') == 2
예제 #5
0
def test_model_construction(pooling):
    hp = hp_module.HyperParameters()
    hp.Choice("pooling", [pooling])
    hypermodel = xception.HyperXception(input_shape=(128, 128, 3), classes=10)
    model = hypermodel.build(hp)
    assert hp.values["pooling"] == pooling
    assert model.layers
    assert model.name == "Xception"
    assert model.output_shape == (None, 10)
    model.train_on_batch(np.ones((1, 128, 128, 3)), np.ones((1, 10)))
    out = model.predict(np.ones((1, 128, 128, 3)))
    assert out.shape == (1, 10)
예제 #6
0
def test_hyperparameter_existence_and_defaults():
    hp = hp_module.HyperParameters()
    hypermodel = xception.HyperXception(input_shape=(256, 256, 3), classes=10)
    hypermodel.build(hp)
    assert hp.values == {
        "activation": "relu",
        "conv2d_num_filters": 64,
        "kernel_size": 3,
        "initial_strides": 2,
        "sep_num_filters": 256,
        "num_residual_blocks": 4,
        "pooling": "avg",
        "num_dense_layers": 1,
        "dropout_rate": 0.5,
        "dense_use_bn": True,
        "learning_rate": 1e-3,
    }
예제 #7
0
def test_hyperparameter_existence_and_defaults():
    hp = hp_module.HyperParameters()
    hypermodel = xception.HyperXception(input_shape=(256, 256, 3), classes=10)
    hypermodel.build(hp)
    assert hp.values == {
        'activation': 'relu',
        'conv2d_num_filters': 64,
        'kernel_size': 3,
        'initial_strides': 2,
        'sep_num_filters': 256,
        'num_residual_blocks': 4,
        'pooling': 'avg',
        'num_dense_layers': 1,
        'dropout_rate': 0.5,
        'dense_use_bn': True,
        'learning_rate': 1e-3
    }