Esempio n. 1
0
def test_image_block_augment_return_tensor():
    block = blocks.ImageBlock(augment=True)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 2
0
def test_structured_block_normalize_return_tensor():
    block = blocks.StructuredDataBlock(normalize=True)
    block.column_names = ["0", "1"]
    block.column_types = {"0": analysers.NUMERICAL, "1": analysers.NUMERICAL}

    outputs = block.build(keras_tuner.HyperParameters(),
                          tf.keras.Input(shape=(2, ), dtype=tf.string))

    assert len(nest.flatten(outputs)) == 1
Esempio n. 3
0
def test_spatial_build_return_tensor():
    block = blocks.SpatialReduction()

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 4
0
def test_dense_build_return_tensor():
    block = blocks.DenseBlock(
        num_units=keras_tuner.engine.hyperparameters.Choice(
            "num_units", [10, 20]))

    outputs = block.build(keras_tuner.HyperParameters(),
                          tf.keras.Input(shape=(32, ), dtype=tf.float32))

    assert len(nest.flatten(outputs)) == 1
Esempio n. 5
0
def test_resnet_pretrained_build_return_tensor():
    block = blocks.ResNetBlock(pretrained=True)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 6
0
def test_resnet_pretrained_with_one_channel_input():
    block = blocks.ResNetBlock(pretrained=True)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(28, 28, 1), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 7
0
def test_resnet_v1_return_tensor():
    block = blocks.ResNetBlock(version="v1")

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 8
0
def test_efficientnet_b0_return_tensor():
    block = blocks.EfficientNetBlock(version="b0", pretrained=False)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 9
0
def test_rnn_build_return_tensor():
    block = blocks.RNNBlock(bidirectional=False)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 10), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 10
0
def test_conv_build_with_dropout_return_tensor():
    block = blocks.ConvBlock(dropout=0.5)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 11
0
def test_conv_with_small_image_size_return_tensor():
    block = blocks.ConvBlock()

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(10, 10, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 12
0
def test_augment_build_with_vflip_only_return_tensor():
    block = blocks.ImageAugmentation(vertical_flip=True, horizontal_flip=False)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 13
0
def test_augment_build_with_zoom_factor_return_tensor():
    block = blocks.ImageAugmentation(zoom_factor=0.1)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 14
0
def test_cat_to_num_build_return_tensor():
    block = blocks.CategoricalToNumerical()
    block.column_names = ["a"]
    block.column_types = {"a": "num"}

    outputs = block.build(keras_tuner.HyperParameters(),
                          tf.keras.Input(shape=(1, ), dtype=tf.string))

    assert len(nest.flatten(outputs)) == 1
Esempio n. 15
0
def test_temporal_global_avg_return_tensor():
    block = blocks.TemporalReduction(reduction_type="global_avg")

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 10), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 16
0
def test_xception_build_return_tensor():
    block = blocks.XceptionBlock()

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 32, 2), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 17
0
def test_clf_head_build_with_zero_dropout_return_tensor():
    block = head_module.ClassificationHead(dropout=0, shape=(8, ))

    outputs = block.build(
        keras_tuner.HyperParameters(),
        keras.Input(shape=(5, ), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 18
0
def test_merge_single_input_return_tensor():
    block = blocks.Merge()

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32,), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 19
0
def test_image_block_xception_return_tensor():
    block = blocks.ImageBlock(block_type="xception")

    outputs = block.build(
        keras_tuner.HyperParameters(),
        keras.Input(shape=(32, 32, 3), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 20
0
def test_multi_label_loss():
    head = head_module.ClassificationHead(name="a",
                                          multi_label=True,
                                          num_classes=8,
                                          shape=(8, ))
    input_node = keras.Input(shape=(5, ))
    output_node = head.build(keras_tuner.HyperParameters(), input_node)
    model = keras.Model(input_node, output_node)
    assert model.layers[-1].activation.__name__ == "sigmoid"
    assert head.loss.name == "binary_crossentropy"
Esempio n. 21
0
def test_txt_clf_init_hp0_equals_hp_of_a_model(tmp_path):
    clf = ak.TextClassifier(directory=tmp_path)
    clf.inputs[0].shape = (1, )
    clf.outputs[0].in_blocks[0].shape = (10, )
    init_hp = task_specific.TEXT_CLASSIFIER[0]
    hp = keras_tuner.HyperParameters()
    hp.values = copy.copy(init_hp)

    clf.tuner.hypermodel.build(hp)
    assert set(init_hp.keys()) == set(hp._hps.keys())
Esempio n. 22
0
def test_graph_basics():
    input_node = ak.Input(shape=(30, ))
    output_node = input_node
    output_node = ak.DenseBlock()(output_node)
    output_node = ak.RegressionHead(shape=(1, ))(output_node)

    model = graph_module.Graph(inputs=input_node, outputs=output_node).build(
        keras_tuner.HyperParameters())
    assert model.input_shape == (None, 30)
    assert model.output_shape == (None, 1)
Esempio n. 23
0
def _get_hyperparameters() -> kt.HyperParameters:
  """Returns hyperparameters for building a TFDF model."""
  hp = kt.HyperParameters()
  # Defines search space.
  # For a complete list of configuration parameters of learners, please refer to
  # https://github.com/google/yggdrasil-decision-forests/blob/main/documentation/learners.md
  hp.Int('max_depth', 3, 8, default=6)
  hp.Float('shrinkage', 0.01, 0.1, default=0.1)
  hp.Boolean('use_hessian_gain', default=False)
  return hp
Esempio n. 24
0
def test_structured_block_search_normalize_return_tensor():
    block = blocks.StructuredDataBlock(name="a")
    block.column_names = ["0", "1"]
    block.column_types = {"0": analysers.NUMERICAL, "1": analysers.NUMERICAL}
    hp = keras_tuner.HyperParameters()
    hp.values["a/" + blocks.wrapper.NORMALIZE] = True

    outputs = block.build(hp, tf.keras.Input(shape=(2, ), dtype=tf.string))

    assert len(nest.flatten(outputs)) == 1
Esempio n. 25
0
def test_resnet_pretrained_error_with_two_channels():
    block = blocks.ResNetBlock(pretrained=True)

    with pytest.raises(ValueError) as info:
        block.build(
            keras_tuner.HyperParameters(),
            tf.keras.Input(shape=(224, 224, 2), dtype=tf.float32),
        )

    assert "When pretrained is set to True" in str(info.value)
Esempio n. 26
0
def test_rnn_input_shape_one_dim_error():
    block = blocks.RNNBlock()

    with pytest.raises(ValueError) as info:
        block.build(
            keras_tuner.HyperParameters(),
            tf.keras.Input(shape=(32, ), dtype=tf.float32),
        )

    assert "Expect the input tensor of RNNBlock" in str(info.value)
Esempio n. 27
0
def test_timeseries_build_return_tensor():
    block = blocks.TimeseriesBlock()
    block.column_names = ["0", "1"]
    block.column_types = {"0": analysers.NUMERICAL, "1": analysers.NUMERICAL}

    outputs = block.build(
        keras_tuner.HyperParameters(),
        tf.keras.Input(shape=(32, 2), dtype=tf.float32),
    )

    assert len(nest.flatten(outputs)) == 1
Esempio n. 28
0
def test_reduction_2d_tensor_return_input_node():
    block = blocks.TemporalReduction()
    input_node = keras.Input(shape=(32,), dtype=tf.float32)

    outputs = block.build(
        keras_tuner.HyperParameters(),
        input_node,
    )

    assert len(nest.flatten(outputs)) == 1
    assert nest.flatten(outputs)[0] is input_node
Esempio n. 29
0
def test_greedy_oracle_populate_space_with_no_hp(get_best_trials):
    hp = keras_tuner.HyperParameters()

    oracle = greedy.GreedyOracle(objective="val_loss", seed=utils.SEED)
    trial = mock.Mock()
    trial.hyperparameters = hp
    get_best_trials.return_value = [trial]

    oracle.update_space(hp)
    values_a = oracle.populate_space("a")["values"]

    assert len(values_a) == 0
Esempio n. 30
0
def test_merge():
    input_node1 = ak.Input(shape=(30, ))
    input_node2 = ak.Input(shape=(40, ))
    output_node1 = ak.DenseBlock()(input_node1)
    output_node2 = ak.DenseBlock()(input_node2)
    output_node = ak.Merge()([output_node1, output_node2])
    output_node = ak.RegressionHead(shape=(1, ))(output_node)

    model = graph_module.Graph(inputs=[input_node1, input_node2],
                               outputs=output_node).build(
                                   keras_tuner.HyperParameters())
    assert model.input_shape == [(None, 30), (None, 40)]
    assert model.output_shape == (None, 1)