mlair.model_modules.u_networks

Module Contents

Classes

UNet

A U-net neural network.

Attributes

__author__

__date__

mlair.model_modules.u_networks.__author__ = Lukas Leufen
mlair.model_modules.u_networks.__date__ = 2022-08-29
class mlair.model_modules.u_networks.UNet(input_shape: list, output_shape: list, layer_configuration: list, optimizer='adam', **kwargs)

Bases: mlair.model_modules.convolutional_networks.CNNfromConfig

A U-net neural network.

```python input_shape = [(65,1,9)] output_shape = [(4, )]

# model layer_configuration=[

# 1st block (down) {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 16, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 16, “padding”: “same”}, {“type”: “MaxPooling2D”, “pool_size”: (2, 1), “strides”: (2, 1)}, {“type”: “blocksave”},

# 2nd block (down) {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 32, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 32, “padding”: “same”}, {“type”: “MaxPooling2D”, “pool_size”: (2, 1), “strides”: (2, 1)}, {“type”: “blocksave”},

# 3rd block (down) {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 64, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 64, “padding”: “same”}, {“type”: “MaxPooling2D”, “pool_size”: (2, 1), “strides”: (2, 1)}, {“type”: “blocksave”},

# 4th block (down) {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 128, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 128, “padding”: “same”}, {“type”: “MaxPooling2D”, “pool_size”: (2, 1), “strides”: (2, 1)}, {“type”: “blocksave”},

# 5th block (final down) {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 256, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 256, “padding”: “same”},

# 6th block (up) {“type”: “Conv2DTranspose”, “activation”: “relu”, “kernel_size”: (2, 1), “filters”: 128, “strides”: (2, 1),

“padding”: “same”},

{“type”: “ConcatenateUNet”}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 128, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 128, “padding”: “same”},

# 7th block (up) {“type”: “Conv2DTranspose”, “activation”: “relu”, “kernel_size”: (2, 1), “filters”: 64, “strides”: (2, 1),

“padding”: “same”},

{“type”: “ConcatenateUNet”}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 64, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 64, “padding”: “same”},

# 8th block (up) {“type”: “Conv2DTranspose”, “activation”: “relu”, “kernel_size”: (2, 1), “filters”: 32, “strides”: (2, 1),

“padding”: “same”},

{“type”: “ConcatenateUNet”}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 32, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 32, “padding”: “same”},

# 8th block (up) {“type”: “Conv2DTranspose”, “activation”: “relu”, “kernel_size”: (2, 1), “filters”: 16, “strides”: (2, 1),

“padding”: “same”},

{“type”: “ConcatenateUNet”}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 16, “padding”: “same”}, {“type”: “Dropout”, “rate”: 0.25}, {“type”: “Conv2D”, “activation”: “relu”, “kernel_size”: (3, 1), “filters”: 16, “padding”: “same”},

# Tail {“type”: “Flatten”}, {“type”: “Dense”, “units”: 128, “activation”: “relu”}

]

model = UNet(input_shape, output_shape, layer_configuration) ```

_extract_layer_conf(self, layer_opts)
set_model(self)

Abstract method to set model.