File size: 2,918 Bytes
f91c847
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
da0fcc1
f91c847
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
language: en
license: mit
library_name: pytorch
tags:
- medical-imaging
- mri
- 3d-resnet
- monai
- oncology
- breast-cancer
datasets:
- odelia
metrics:
- roc_auc
pipeline_tag: image-classification
---

# 3D ResNet-18 for ODELIA MRI Classification

This repository contains the weights for a 3D ResNet-18 model trained for the ODELIA dataset (multi-parametric MRI). The model was developed to classify medical images into 3 distinct classes using 5-fold cross-validation.

## Model Description

- **Developed by:** THOUAN Simon
- **Model type:** 3D Convolutional Neural Network (ResNet-18 architecture)
- **Framework:** PyTorch & MONAI
- **Task:** Multi-class 3D Image Classification (3 classes)
- **Input:** 5 MRI sequences (Pre, Post_1, Post_2, Sub_1, T2) concatenated as channels.
- **Input Size:** (128, 128, 64)

## Architecture Details

The model is a 3D adaptation of the ResNet architecture provided by the **MONAI** library:
- **Blocks:** Basic block
- **Layers:** [2, 2, 2, 2] (Equivalent to ResNet-18)
- **In-planes:** [64, 128, 256, 512]
- **Input Channels:** 5
- **Spatial Dimensions:** 3D

## Training Procedure

The model was trained on a high-performance computing cluster (IDUN) using the following configuration:

### Hyperparameters
| Parameter | Value |
| :--- | :--- |
| **Optimizer** | Adam |
| **Learning Rate** | 1e-4 |
| **Loss Function** | CrossEntropyLoss |
| **Batch Size** | 4 (Training) / 2 (Validation) |
| **Epochs** | 50 |
| **Validation** | Every 2 epochs |

### Cross-Validation Strategy
The dataset was split into 5 folds (A, B, C, D, E) to ensure robustness. 
- **Fold 0:** Val = A, Train = B+C+D+E
- **Fold 1:** Val = B, Train = A+C+D+E
- *(Continuing for all 5 folds)*

### Preprocessing (MONAI Transforms)
- **Resizing:** All volumes resized to $128 \times 128 \times 64$.
- **Normalization:** Intensity scaling for each sequence.
- **Concatenation:** The 5 MRI sequences are stacked into a single 5-channel tensor.

## Evaluation Results

The primary metric used is **ROC AUC** (Area Under the Receiver Operating Analytic Curve). 
Detailed performance graphs and confusion matrices for the ensemble can be found in the associated [GitHub Repository](https://github.com/THOUAN-Simon/ODELIA_Challenge_CV_DL)).

## How to Load the Model

```python
import torch
from monai.networks.nets import ResNet

# Initialize architecture
model = ResNet(
    block="basic", 
    layers=[2, 2, 2, 2], 
    block_inplanes=[64, 128, 256, 512],
    n_input_channels=5, 
    num_classes=3, 
    spatial_dims=3
)

# Load weights
state_dict = torch.load("weights/best_resnet_odelia_fold0.pth", map_location="cpu")
model.load_state_dict(state_dict)
model.eval()

```

## Limitations & Ethical Considerations
This model is for research purposes only. It was trained on the ODELIA proprietary dataset. Predictions should not be used for clinical diagnosis without professional medical supervision.