From 0e0d5e9cb267f4b6d15c641e0f3ac4f386dbdd64 Mon Sep 17 00:00:00 2001 From: Jupilogy Date: Sat, 30 Sep 2023 12:34:54 +0100 Subject: [PATCH 1/3] Adding padding param for autoencoder --- monai/networks/nets/autoencoder.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/monai/networks/nets/autoencoder.py b/monai/networks/nets/autoencoder.py index 8f093bcc1d..3a9361af89 100644 --- a/monai/networks/nets/autoencoder.py +++ b/monai/networks/nets/autoencoder.py @@ -104,6 +104,7 @@ def __init__( norm: tuple | str = Norm.INSTANCE, dropout: tuple | str | float | None = None, bias: bool = True, + padding: Sequence[int], | int | None = None, ) -> None: super().__init__() self.dimensions = spatial_dims @@ -118,6 +119,7 @@ def __init__( self.norm = norm self.dropout = dropout self.bias = bias + self.padding = padding self.num_inter_units = num_inter_units self.inter_channels = inter_channels if inter_channels is not None else [] self.inter_dilations = list(inter_dilations or [1] * len(self.inter_channels)) @@ -178,6 +180,7 @@ def _get_intermediate_module(self, in_channels: int, num_inter_units: int) -> tu dropout=self.dropout, dilation=di, bias=self.bias, + padding=self.padding, ) else: unit = Convolution( @@ -191,6 +194,7 @@ def _get_intermediate_module(self, in_channels: int, num_inter_units: int) -> tu dropout=self.dropout, dilation=di, bias=self.bias, + padding=self.padding, ) intermediate.add_module("inter_%i" % i, unit) @@ -231,6 +235,7 @@ def _get_encode_layer(self, in_channels: int, out_channels: int, strides: int, i norm=self.norm, dropout=self.dropout, bias=self.bias, + padding=self.padding, last_conv_only=is_last, ) return mod @@ -244,6 +249,7 @@ def _get_encode_layer(self, in_channels: int, out_channels: int, strides: int, i norm=self.norm, dropout=self.dropout, bias=self.bias, + padding=self.padding, conv_only=is_last, ) return mod @@ -264,6 +270,7 @@ def _get_decode_layer(self, in_channels: int, out_channels: int, strides: int, i norm=self.norm, dropout=self.dropout, bias=self.bias, + padding=self.padding, conv_only=is_last and self.num_res_units == 0, is_transposed=True, ) @@ -282,6 +289,7 @@ def _get_decode_layer(self, in_channels: int, out_channels: int, strides: int, i norm=self.norm, dropout=self.dropout, bias=self.bias, + padding=self.padding, last_conv_only=is_last, ) From dec2b99d5ae1ea35306b3efb10a6fc407cd8d5c3 Mon Sep 17 00:00:00 2001 From: Jupilogy Date: Sat, 30 Sep 2023 12:50:50 +0100 Subject: [PATCH 2/3] syntax fix --- monai/networks/nets/autoencoder.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monai/networks/nets/autoencoder.py b/monai/networks/nets/autoencoder.py index 3a9361af89..35138c264f 100644 --- a/monai/networks/nets/autoencoder.py +++ b/monai/networks/nets/autoencoder.py @@ -104,7 +104,7 @@ def __init__( norm: tuple | str = Norm.INSTANCE, dropout: tuple | str | float | None = None, bias: bool = True, - padding: Sequence[int], | int | None = None, + padding: Sequence[int] | int | None = None, ) -> None: super().__init__() self.dimensions = spatial_dims From f083f63c4831106c8c003de7b80c42ee15421b7d Mon Sep 17 00:00:00 2001 From: Jupilogy Date: Sat, 30 Sep 2023 12:57:07 +0100 Subject: [PATCH 3/3] Added padding doc More or less copied from monai/blocks/convolutions.py DCO Remediation Commit for Jupilogy I, Jupilogy , hereby add my Signed-off-by to this commit: 0e0d5e9cb267f4b6d15c641e0f3ac4f386dbdd64 I, Jupilogy , hereby add my Signed-off-by to this commit: dec2b99d5ae1ea35306b3efb10a6fc407cd8d5c3 I, Jupilogy , hereby add my Signed-off-by to this commit: e322d1db44a37ca5d985cece17d031624dab649c Signed-off-by: Jupilogy --- monai/networks/nets/autoencoder.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monai/networks/nets/autoencoder.py b/monai/networks/nets/autoencoder.py index 35138c264f..fa7003746b 100644 --- a/monai/networks/nets/autoencoder.py +++ b/monai/networks/nets/autoencoder.py @@ -58,6 +58,8 @@ class AutoEncoder(nn.Module): bias: whether to have a bias term in convolution blocks. Defaults to True. According to `Performance Tuning Guide `_, if a conv layer is directly followed by a batch norm layer, bias should be False. + padding: controls the amount of implicit zero-paddings on both sides for padding number of points + for each dimension in convolution blocks. Defaults to None. Examples::