Esempio n. 1
0
def layers():
    arch = {
        'Input': {
            '@type': 'Input',
            'out_shapes': {
                'default': ('T', 'B', 2)
            },
            '@outgoing_connections': ['A', 'B']
        },
        'A': {
            '@type': 'FullyConnected',
            'size': 3,
            '@outgoing_connections': ['C']
        },
        'B': {
            '@type': 'FullyConnected',
            'size': 5,
            '@outgoing_connections': ['C', 'D']
        },
        'C': {
            '@type': 'FullyConnected',
            'size': 7,
            '@outgoing_connections': ['D']
        },
        'D': {
            '@type': 'FullyConnected',
            'size': 11,
            '@outgoing_connections': []
        }
    }
    return instantiate_layers_from_architecture(arch)
Esempio n. 2
0
def layers():
    arch = {
        'Input': {
            '@type': 'Input',
            'out_shapes': {'default': ('T', 'B', 2)},
            '@outgoing_connections': ['A', 'B']
        },
        'A': {
            '@type': 'FullyConnected',
            'size': 3,
            '@outgoing_connections': ['C']
        },
        'B': {
            '@type': 'FullyConnected',
            'size': 5,
            '@outgoing_connections': ['C', 'D']
        },
        'C': {
            '@type': 'FullyConnected',
            'size': 7,
            '@outgoing_connections': ['D']
        },
        'D': {
            '@type': 'FullyConnected',
            'size': 11,
            '@outgoing_connections': []
        }
    }
    return instantiate_layers_from_architecture(arch)
Esempio n. 3
0
    def from_architecture(cls, architecture):
        """
        Create Network instance from given architecture.

        Args:
            architecture (dict):
                JSON serializable Architecture description.
        Returns:
            Network:
                A fully functional Network instance.
        """
        layers = instantiate_layers_from_architecture(architecture)
        hubs, layout = create_layout(layers)
        buffer_manager = BufferManager(layout, hubs)
        return cls(layers, buffer_manager, architecture)
Esempio n. 4
0
    def from_architecture(cls, architecture):
        """
        Create Network instance from given architecture.

        Args:
            architecture (dict):
                JSON serializable Architecture description.
        Returns:
            Network:
                A fully functional Network instance.
        """
        layers = instantiate_layers_from_architecture(architecture)
        hubs, layout = create_layout(layers)
        buffer_manager = BufferManager(layout, hubs)
        return cls(layers, buffer_manager, architecture)
Esempio n. 5
0
def test_instantiate_layers_from_architecture():
    arch = {
        'Input': {
            '@type': 'Input',
            'out_shapes': {'default': ('T', 'B', 10,)},
            '@outgoing_connections': ['A', 'B', 'C']
        },
        'A': {
            '@type': 'NoOp',
            '@outgoing_connections': ['B']
        },
        'B': {
            '@type': 'NoOp',
            '@outgoing_connections': ['D']
        },
        'C': {
            '@type': 'NoOp',
            '@outgoing_connections': ['D']
        },
        'D': {
            '@type': 'NoOp',
            '@outgoing_connections': []
        }
    }
    layers = instantiate_layers_from_architecture(arch)
    assert set(arch.keys()) == set(layers.keys())

    assert isinstance(layers['Input'], InputLayerImpl)
    assert type(layers['A']) == NoOpLayerImpl
    assert type(layers['B']) == NoOpLayerImpl
    assert type(layers['C']) == NoOpLayerImpl
    assert type(layers['D']) == NoOpLayerImpl

    assert layers['Input'].in_shapes == {}
    assert layers['Input'].out_shapes == {'default':
                                          BufferStructure('T', 'B', 10)}
    assert layers['A'].in_shapes == {'default': BufferStructure('T', 'B', 10)}
    assert layers['A'].out_shapes == {'default': BufferStructure('T', 'B', 10)}
    assert layers['B'].in_shapes == {'default': BufferStructure('T', 'B', 20)}
    assert layers['B'].out_shapes == {'default': BufferStructure('T', 'B', 20)}
    assert layers['C'].in_shapes == {'default': BufferStructure('T', 'B', 10)}
    assert layers['C'].out_shapes == {'default': BufferStructure('T', 'B', 10)}
    assert layers['D'].in_shapes == {'default': BufferStructure('T', 'B', 30)}
    assert layers['D'].out_shapes == {'default': BufferStructure('T', 'B', 30)}