Ejemplo n.º 1
0
def instantiate_layers_from_architecture(architecture):
    validate_architecture(architecture)
    layers = OrderedDict()
    connections = collect_all_connections(architecture)
    for layer_name in get_canonical_layer_order(architecture):
        layer = architecture[layer_name]
        LayerClass = get_layer_class_from_typename(layer['@type'] +
                                                   'LayerImpl')
        incoming = {c for c in connections if c.end_layer == layer_name}
        outgoing = {c for c in connections if c.start_layer == layer_name}

        input_names = {c.input_name for c in incoming}
        in_shapes = {}
        for input_name in input_names:
            incoming_out_shapes = [
                layers[c.start_layer].get_shape(
                    get_normalized_path('outputs', c.output_name))
                for c in incoming if c.input_name == input_name]

            in_shapes[input_name] = combine_buffer_structures(
                incoming_out_shapes)

        layers[layer_name] = LayerClass(layer_name, in_shapes, incoming,
                                        outgoing, **get_kwargs(layer))
    return layers
Ejemplo n.º 2
0
def test_get_layer_class_from_typename_raises_typeerror():
    with pytest.raises(TypeError):
        get_layer_class_from_typename('NonexistentLayer')
Ejemplo n.º 3
0
def test_get_layer_class_from_typename():
    assert get_layer_class_from_typename('InputLayerImpl') == InputLayerImpl
    assert get_layer_class_from_typename('NoOpLayerImpl') == NoOpLayerImpl
Ejemplo n.º 4
0
def test_get_layer_class_from_typename_raises_typeerror():
    with pytest.raises(TypeError):
        get_layer_class_from_typename('NonexistentLayer')
Ejemplo n.º 5
0
def test_get_layer_class_from_typename():
    assert get_layer_class_from_typename('InputLayerImpl') == InputLayerImpl
    assert get_layer_class_from_typename('NoOpLayerImpl') == NoOpLayerImpl