From 6f8cb98186dd265b356d37cfdcb9979ed7ce5030 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anna=20B=C3=B8gevang=20Ekner?= <s193396@dtu.dk>
Date: Mon, 17 Feb 2025 14:49:04 +0100
Subject: [PATCH] removed UNet2D

---
 qim3d/ml/models/__init__.py |  2 +-
 qim3d/ml/models/_unet.py    | 81 -------------------------------------
 2 files changed, 1 insertion(+), 82 deletions(-)

diff --git a/qim3d/ml/models/__init__.py b/qim3d/ml/models/__init__.py
index 9152ab54..4624be5f 100644
--- a/qim3d/ml/models/__init__.py
+++ b/qim3d/ml/models/__init__.py
@@ -1 +1 @@
-from ._unet import UNet, UNet2D, Hyperparameters
+from ._unet import UNet, Hyperparameters
diff --git a/qim3d/ml/models/_unet.py b/qim3d/ml/models/_unet.py
index 5d47b61c..b2950a2b 100644
--- a/qim3d/ml/models/_unet.py
+++ b/qim3d/ml/models/_unet.py
@@ -84,87 +84,6 @@ class UNet(nn.Module):
         x = self.model(x)
         return x
 
-
-class UNet2D(nn.Module):
-    """
-    2D UNet model for QIM imaging.
-
-    This class represents a 2D UNet model designed for imaging segmentation tasks.
-
-    Args:
-        size ('small' or 'medium' or 'large', optional): Size of the UNet model. Must be one of 'small', 'medium', or 'large'. Defaults to 'medium'.
-        dropout (float, optional): Dropout rate between 0 and 1. Defaults to 0.
-        kernel_size (int, optional): Convolution kernel size. Defaults to 3.
-        up_kernel_size (int, optional): Up-convolution kernel size. Defaults to 3.
-        activation (str, optional): Activation function. Defaults to 'PReLU'.
-        bias (bool, optional): Whether to include bias in convolutions. Defaults to True.
-        adn_order (str, optional): ADN (Activation, Dropout, Normalization) ordering. Defaults to 'NDA'.
-
-    Raises:
-        ValueError: If `size` is not one of 'small', 'medium', or 'large'.
-    """
-
-    def __init__(
-        self,
-        size="medium",
-        dropout=0,
-        kernel_size=3,
-        up_kernel_size=3,
-        activation="PReLU",
-        bias=True,
-        adn_order="NDA",
-    ):
-        super().__init__()
-        if size not in ["small", "medium", "large"]:
-            raise ValueError(
-                f"Invalid model size: {size}. Size must be one of the following: 'small', 'medium', 'large'."
-            )
-
-        self.size = size
-        self.dropout = dropout
-        self.kernel_size = kernel_size
-        self.up_kernel_size = up_kernel_size
-        self.activation = activation
-        self.bias = bias
-        self.adn_order = adn_order
-
-        self.model = self._model_choice()
-
-    def _model_choice(self):
-        from monai.networks.nets import UNet as monai_UNet
-
-        if self.size == "small":
-            # 3 layers
-            self.channels = (64, 128, 256)
-
-        elif self.size == "medium":
-            # 5 layers
-            self.channels = (64, 128, 256, 512, 1024)
-
-        elif self.size == "large":
-            # 6 layers
-            self.channels = (64, 128, 256, 512, 1024, 2048)
-
-        model = monai_UNet(
-            spatial_dims=2,
-            in_channels=1,  # TODO: check if image has 1 or multiple input channels
-            out_channels=1,
-            channels=self.channels,
-            strides=(2,) * (len(self.channels) - 1),
-            kernel_size=self.kernel_size,
-            up_kernel_size=self.up_kernel_size,
-            act=self.activation,
-            dropout=self.dropout,
-            bias=self.bias,
-            adn_ordering=self.adn_order,
-        )
-        return model
-
-    def forward(self, x):
-        x = self.model(x)
-        return x
-
-
 class Hyperparameters:
     """
     Hyperparameters for QIM segmentation.
-- 
GitLab