Exemple #1
0
    def _assemble(self):
        """Assemble the Blocks based on the input output nodes."""
        inputs = nest.flatten(self.inputs)
        outputs = nest.flatten(self.outputs)

        middle_nodes = []
        for input_node in inputs:
            if isinstance(input_node, input_module.TextInput):
                middle_nodes.append(blocks.TextBlock()(input_node))
            if isinstance(input_node, input_module.ImageInput):
                middle_nodes.append(blocks.ImageBlock()(input_node))
            if isinstance(input_node, input_module.StructuredDataInput):
                middle_nodes.append(blocks.StructuredDataBlock()(input_node))
            if isinstance(input_node, input_module.TimeseriesInput):
                middle_nodes.append(blocks.TimeseriesBlock()(input_node))

        # Merge the middle nodes.
        if len(middle_nodes) > 1:
            output_node = blocks.Merge()(middle_nodes)
        else:
            output_node = middle_nodes[0]

        outputs = nest.flatten(
            [output_blocks(output_node) for output_blocks in outputs])
        return graph_module.Graph(inputs=inputs, outputs=outputs)
Exemple #2
0
def test_structured_get_config_has_all_attributes():
    block = blocks.StructuredDataBlock()

    config = block.get_config()

    assert test_utils.get_func_args(
        blocks.StructuredDataBlock.__init__).issubset(config.keys())
Exemple #3
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
Exemple #4
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
Exemple #5
0
def test_structured_build_return_tensor():
    block = blocks.StructuredDataBlock()
    block.column_names = ["0", "1"]
    block.column_types = {"0": adapters.NUMERICAL, "1": adapters.NUMERICAL}

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

    assert len(nest.flatten(outputs)) == 1
    assert isinstance(nest.flatten(outputs)[0], tf.Tensor)
Exemple #6
0
def test_structured_deserialize_to_structured():
    serialized_block = blocks.serialize(blocks.StructuredDataBlock())

    block = blocks.deserialize(serialized_block)

    assert isinstance(block, blocks.StructuredDataBlock)
Exemple #7
0
 def get_block(self):
     return blocks.StructuredDataBlock()