:py:mod:`mlair.model_modules.u_networks` ======================================== .. py:module:: mlair.model_modules.u_networks Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: mlair.model_modules.u_networks.UNet Attributes ~~~~~~~~~~ .. autoapisummary:: mlair.model_modules.u_networks.__author__ mlair.model_modules.u_networks.__date__ .. py:data:: __author__ :annotation: = Lukas Leufen .. py:data:: __date__ :annotation: = 2022-08-29 .. py:class:: UNet(input_shape: list, output_shape: list, layer_configuration: list, optimizer='adam', **kwargs) Bases: :py:obj:`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) ``` .. py:method:: _extract_layer_conf(self, layer_opts) .. py:method:: set_model(self) Abstract method to set model.