# like9426334946/selfmodel architecture

> Architecture diagram of the GitHub repository like9426334946/selfmodel, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/like9426334946/selfmodel
- Repository: https://github.com/like9426334946/selfmodel

## Overview

ModelTrial is a configurable medical-image segmentation training and evaluation project. The main workflow loads configuration, builds a dataset and model, trains with a selected loss, evaluates validation metrics, and saves model and metric artifacts. It supports Kvasir-SEG and ACDC datasets and seven model choices; a separate visualization script logs validation images and training metrics to TensorBoard. The test entry point is documented but its implementation was not sampled, so its internal flow is not inferred.

Main entry points: [`models/__init__.py`](https://github.com/like9426334946/selfmodel/blob/main/models/__init__.py) (Model registry), [`train.py`](https://github.com/like9426334946/selfmodel/blob/main/train.py) (Training runner), [`visualize_train.py`](https://github.com/like9426334946/selfmodel/blob/main/visualize_train.py) (TensorBoard visualizer), [`datasets/__init__.py`](https://github.com/like9426334946/selfmodel/blob/main/datasets/__init__.py) (Dataset builder)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Training workflow"]
  node_config["Run configuration<br/>[config.py]"]
  node_trainer["Training runner<br/>[train.py]"]
  node_tester["Test entry<br/>[test.py]"]
  node_artifacts["Training artifacts"]
end

subgraph group_data["Segmentation data"]
  node_dataset_builder["Dataset builder<br/>[__init__.py]"]
  node_kvasir["Kvasir dataset<br/>[kvasir_dataset.py]"]
  node_acdc["ACDC dataset<br/>[acdc_dataset.py]"]
end

subgraph group_models["Model choices"]
  node_model_builder["Model registry<br/>[__init__.py]"]
  node_model01["Model 01<br/>[model_01.py]"]
  node_model02["Model 02<br/>[model_02.py]"]
  node_model03["Model 03<br/>[model_03.py]"]
  node_model04["Model 04<br/>[model_04.py]"]
  node_model05["Model 05<br/>[model_05.py]"]
  node_model06["Model 06<br/>[model_06.py]"]
  node_model07["Model 07<br/>[model_07.py]"]
end

subgraph group_analysis["Evaluation and visualization"]
  node_task["Loss and predictions<br/>[task.py]"]
  node_metrics["Validation metrics<br/>[metrics.py]"]
  node_plot["Training curves<br/>[plot.py]"]
  node_visualizer["TensorBoard visualizer<br/>[visualize_train.py]"]
  node_tensorboard["TensorBoard logs"]
end

node_user(("Researcher"))

node_user -->|"sets options"| node_config
node_user -->|"starts training"| node_trainer
node_user -->|"starts testing"| node_tester
node_trainer -->|"loads settings"| node_config
node_trainer -->|"builds splits"| node_dataset_builder
node_trainer -->|"builds model"| node_model_builder
node_trainer -->|"builds loss"| node_task
node_trainer -->|"evaluates model"| node_metrics
node_trainer -->|"plots history"| node_plot
node_trainer -->|"writes checkpoints and metrics"| node_artifacts
node_dataset_builder -->|"constructs dataset"| node_kvasir
node_dataset_builder -->|"constructs dataset"| node_acdc
node_model_builder -->|"selects model"| node_model01
node_model_builder -->|"selects model"| node_model02
node_model_builder -->|"selects model"| node_model03
node_model_builder -->|"selects model"| node_model04
node_model_builder -->|"selects model"| node_model05
node_model_builder -->|"selects model"| node_model06
node_model_builder -->|"selects model"| node_model07
node_metrics -->|"predicts classes"| node_task
node_visualizer -->|"loads settings"| node_config
node_visualizer -->|"builds splits"| node_dataset_builder
node_visualizer -->|"builds model"| node_model_builder
node_visualizer -->|"builds loss and predictions"| node_task
node_visualizer -->|"evaluates model"| node_metrics
node_visualizer -->|"writes summaries"| node_tensorboard

click node_config "https://github.com/like9426334946/selfmodel/blob/main/utils/config.py"
click node_trainer "https://github.com/like9426334946/selfmodel/blob/main/train.py"
click node_tester "https://github.com/like9426334946/selfmodel/blob/main/test.py"
click node_dataset_builder "https://github.com/like9426334946/selfmodel/blob/main/datasets/__init__.py"
click node_kvasir "https://github.com/like9426334946/selfmodel/blob/main/datasets/kvasir_dataset.py"
click node_acdc "https://github.com/like9426334946/selfmodel/blob/main/datasets/acdc_dataset.py"
click node_model_builder "https://github.com/like9426334946/selfmodel/blob/main/models/__init__.py"
click node_model01 "https://github.com/like9426334946/selfmodel/blob/main/models/model_01.py"
click node_model02 "https://github.com/like9426334946/selfmodel/blob/main/models/model_02.py"
click node_model03 "https://github.com/like9426334946/selfmodel/blob/main/models/model_03.py"
click node_model04 "https://github.com/like9426334946/selfmodel/blob/main/models/model_04.py"
click node_model05 "https://github.com/like9426334946/selfmodel/blob/main/models/model_05.py"
click node_model06 "https://github.com/like9426334946/selfmodel/blob/main/models/model_06.py"
click node_model07 "https://github.com/like9426334946/selfmodel/blob/main/models/model_07.py"
click node_task "https://github.com/like9426334946/selfmodel/blob/main/utils/task.py"
click node_metrics "https://github.com/like9426334946/selfmodel/blob/main/utils/metrics.py"
click node_plot "https://github.com/like9426334946/selfmodel/blob/main/utils/plot.py"
click node_visualizer "https://github.com/like9426334946/selfmodel/blob/main/visualize_train.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_config,node_trainer,node_tester,node_artifacts toneBlue
class node_dataset_builder,node_kvasir,node_acdc toneAmber
class node_model_builder,node_model01,node_model02,node_model03,node_model04,node_model05,node_model06,node_model07 toneMint
class node_task,node_metrics,node_plot,node_visualizer,node_tensorboard toneRose
class node_user toneIndigo
```

## Components

### Training workflow

- [Run configuration](https://github.com/like9426334946/selfmodel/blob/main/utils/config.py): `utils/config.py`
- [Training runner](https://github.com/like9426334946/selfmodel/blob/main/train.py): `train.py`
- [Test entry](https://github.com/like9426334946/selfmodel/blob/main/test.py): `test.py`
- **Training artifacts**

### Segmentation data

- [Dataset builder](https://github.com/like9426334946/selfmodel/blob/main/datasets/__init__.py): `datasets/__init__.py`
- [Kvasir dataset](https://github.com/like9426334946/selfmodel/blob/main/datasets/kvasir_dataset.py): `datasets/kvasir_dataset.py`
- [ACDC dataset](https://github.com/like9426334946/selfmodel/blob/main/datasets/acdc_dataset.py): `datasets/acdc_dataset.py`

### Model choices

- [Model registry](https://github.com/like9426334946/selfmodel/blob/main/models/__init__.py): `models/__init__.py`
- [Model 01](https://github.com/like9426334946/selfmodel/blob/main/models/model_01.py): `models/model_01.py`
- [Model 02](https://github.com/like9426334946/selfmodel/blob/main/models/model_02.py): `models/model_02.py`
- [Model 03](https://github.com/like9426334946/selfmodel/blob/main/models/model_03.py): `models/model_03.py`
- [Model 04](https://github.com/like9426334946/selfmodel/blob/main/models/model_04.py): `models/model_04.py`
- [Model 05](https://github.com/like9426334946/selfmodel/blob/main/models/model_05.py): `models/model_05.py`
- [Model 06](https://github.com/like9426334946/selfmodel/blob/main/models/model_06.py): `models/model_06.py`
- [Model 07](https://github.com/like9426334946/selfmodel/blob/main/models/model_07.py): `models/model_07.py`

### Evaluation and visualization

- [Loss and predictions](https://github.com/like9426334946/selfmodel/blob/main/utils/task.py): `utils/task.py`
- [Validation metrics](https://github.com/like9426334946/selfmodel/blob/main/utils/metrics.py): `utils/metrics.py`
- [Training curves](https://github.com/like9426334946/selfmodel/blob/main/utils/plot.py): `utils/plot.py`
- [TensorBoard visualizer](https://github.com/like9426334946/selfmodel/blob/main/visualize_train.py): `visualize_train.py`
- **TensorBoard logs**

### Other components

- **Researcher**

## Connections

- Researcher → Run configuration: sets options (evidence: `README.md`)
- Researcher → Training runner: starts training (evidence: `README.md`)
- Researcher → Test entry: starts testing (evidence: `README.md`)
- Training runner → Run configuration: loads settings (evidence: `train.py`)
- Training runner → Dataset builder: builds splits (evidence: `train.py`)
- Training runner → Model registry: builds model (evidence: `train.py`)
- Training runner → Loss and predictions: builds loss (evidence: `train.py`)
- Training runner → Validation metrics: evaluates model (evidence: `train.py`)
- Training runner → Training curves: plots history (evidence: `train.py`)
- Training runner → Training artifacts: writes checkpoints and metrics (evidence: `train.py`)
- Dataset builder → Kvasir dataset: constructs dataset (evidence: `datasets/__init__.py`)
- Dataset builder → ACDC dataset: constructs dataset (evidence: `datasets/__init__.py`)
- Model registry → Model 01: selects model (evidence: `models/__init__.py`)
- Model registry → Model 02: selects model (evidence: `models/__init__.py`)
- Model registry → Model 03: selects model (evidence: `models/__init__.py`)
- Model registry → Model 04: selects model (evidence: `models/__init__.py`)
- Model registry → Model 05: selects model (evidence: `models/__init__.py`)
- Model registry → Model 06: selects model (evidence: `models/__init__.py`)
- Model registry → Model 07: selects model (evidence: `models/__init__.py`)
- Validation metrics → Loss and predictions: predicts classes (evidence: `utils/metrics.py`)
- TensorBoard visualizer → Run configuration: loads settings (evidence: `visualize_train.py`)
- TensorBoard visualizer → Dataset builder: builds splits (evidence: `visualize_train.py`)
- TensorBoard visualizer → Model registry: builds model (evidence: `visualize_train.py`)
- TensorBoard visualizer → Loss and predictions: builds loss and predictions (evidence: `visualize_train.py`)
- TensorBoard visualizer → Validation metrics: evaluates model (evidence: `visualize_train.py`)
- TensorBoard visualizer → TensorBoard logs: writes summaries (evidence: `visualize_train.py`)
