From 253b31d38c6a4715629aa160418b08ca2c74d341 Mon Sep 17 00:00:00 2001
From: Tamino Huxohl <thuxohl@techfak.uni-bielefeld.de>
Date: Thu, 11 Aug 2022 15:53:41 +0200
Subject: [PATCH] create initial structure

---
 mu_map/data/__init__.py      |  1 +
 mu_map/data/datasets.py      | 21 ++++++++++++++++++++
 mu_map/data/preprocessing.py | 38 ++++++++++++++++++++++++++++++++++++
 mu_map/models.py             |  0
 mu_map/test.py               | 18 +++++++++++++++++
 mu_map/train.py              |  0
 6 files changed, 78 insertions(+)
 create mode 100644 mu_map/data/__init__.py
 create mode 100644 mu_map/data/datasets.py
 create mode 100644 mu_map/data/preprocessing.py
 create mode 100644 mu_map/models.py
 create mode 100644 mu_map/test.py
 create mode 100644 mu_map/train.py

diff --git a/mu_map/data/__init__.py b/mu_map/data/__init__.py
new file mode 100644
index 0000000..975d883
--- /dev/null
+++ b/mu_map/data/__init__.py
@@ -0,0 +1 @@
+from .datasets import *
diff --git a/mu_map/data/datasets.py b/mu_map/data/datasets.py
new file mode 100644
index 0000000..e1aa99d
--- /dev/null
+++ b/mu_map/data/datasets.py
@@ -0,0 +1,21 @@
+import os
+
+import pandas as pd
+import pydicom
+from torch.utils.data import Dataset
+
+class MuMapDataset(Dataset):
+
+    def __init__(self):
+        super().__init__()
+
+        # read csv file and from that access dicom files
+
+    def __getitem__(self, index):
+        pass
+
+    def __len__(self):
+        pass
+
+
+__all__ = [MuMapDataset.__name__]
diff --git a/mu_map/data/preprocessing.py b/mu_map/data/preprocessing.py
new file mode 100644
index 0000000..dc57c6f
--- /dev/null
+++ b/mu_map/data/preprocessing.py
@@ -0,0 +1,38 @@
+import torch
+
+
+def norm_max(tensor: torch.Tensor):
+    return (tensor - tensor.min()) / (tensor.max() - tensor.min())
+
+
+class MaxNorm:
+    def __call__(self, tensor: torch.Tensor):
+        return norm_max(tensor)
+
+
+def norm_mean(tensor: torch.Tensor):
+    return tensor / tensor.mean()
+
+
+class MeanNorm:
+    def __call__(self, tensor: torch.Tensor):
+        return norm_mean(tensor)
+
+
+def norm_gaussian(tensor: torch.Tensor):
+    return (tensor - tensor.mean()) / tensor.std()
+
+
+class GaussianNorm:
+    def __call__(self, tensor: torch.Tensor):
+        return norm_gaussian(tensor)
+
+
+__all__ = [
+    norm_max.__name__,
+    norm_mean.__name__,
+    norm_gaussian.__name__,
+    MaxNorm.__name__,
+    MeanNorm.__name__,
+    GaussianNorm.__name__,
+]
diff --git a/mu_map/models.py b/mu_map/models.py
new file mode 100644
index 0000000..e69de29
diff --git a/mu_map/test.py b/mu_map/test.py
new file mode 100644
index 0000000..fb19770
--- /dev/null
+++ b/mu_map/test.py
@@ -0,0 +1,18 @@
+import torch
+
+from .data.preprocessing import *
+
+means = torch.full((10, 10, 10), 5.0)
+stds = torch.full((10, 10, 10), 10.0)
+x = torch.normal(means, stds)
+
+print(f"Before: mean={x.mean():.3f} std={x.std():.3f}")
+
+y = norm_gaussian(x)
+print(f" After: mean={y.mean():.3f} std={y.std():.3f}")
+y = GaussianNorm()(x)
+print(f" After: mean={y.mean():.3f} std={y.std():.3f}")
+
+
+
+
diff --git a/mu_map/train.py b/mu_map/train.py
new file mode 100644
index 0000000..e69de29
-- 
GitLab