# sebastien-doyez2812/openml-core architecture

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

- Interactive diagram: https://gitdiagram.com/sebastien-doyez2812/openml-core
- Repository: https://github.com/sebastien-doyez2812/openml-core

## Overview

OpenML-core is a PyTorch computer-vision modeling package. Its principal workflow is to create a model, train it on batches using a configured loss and optimizer, then predict, evaluate, and save or load weights. The sampled implementation supports a U-Net and reusable loss functions; README capabilities for other architectures and integrations are documented but not visible in the sampled source, so their wiring is not inferred.

Main entry points: [`src/openmlcore/models/base_model.py`](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/base_model.py) (BaseModel), [`src/openmlcore/models/UNets.py`](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/UNets.py) (U-Net network), [`src/openmlcore/loss/loss.py`](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/loss/loss.py) (LossFactory), [`src/openmlcore/models/lib/convolutions.py`](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/lib/convolutions.py) (DoubleConv blocks)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Model API"]
  node_base_model["BaseModel<br/>[base_model.py]"]
end

subgraph group_architecture["Model Architecture"]
  node_unet["UNet wrapper<br/>[UNets.py]"]
  node_unet_torch["U-Net network<br/>[UNets.py]"]
  node_double_conv["DoubleConv blocks<br/>[convolutions.py]"]
end

subgraph group_training["Training Components"]
  node_loss_factory["LossFactory<br/>[loss.py]"]
  node_losses["Loss functions<br/>[loss.py]"]
  node_data_helper["Custom DataLoader<br/>[data.py]"]
end

subgraph group_capabilities["Documented Capabilities"]
  node_other_models["Other architectures"]
  node_lora["LoRA fine-tuning"]
  node_hub["Hugging Face Hub"]
  node_mlflow["MLflow tracking"]
end

node_user(("Model user"))
node_dataset[("Training data")]
node_torch_loader["Batch loader"]
node_optimizer["Configured optimizer"]
node_checkpoint[("Checkpoint files")]

node_user -->|"configures and invokes"| node_base_model
node_user -->|"selects architecture"| node_unet
node_unet -->|"creates"| node_unet_torch
node_unet_torch -->|"uses blocks"| node_double_conv
node_user -->|"supplies batches"| node_torch_loader
node_torch_loader -->|"yields batches"| node_base_model
node_base_model -->|"runs forward"| node_unet_torch
node_base_model -->|"computes training loss"| node_losses
node_base_model -->|"updates parameters"| node_optimizer
node_user -->|"selects loss"| node_loss_factory
node_loss_factory -->|"creates"| node_losses
node_base_model -->|"saves and loads weights"| node_checkpoint
node_user -->|"may use"| node_data_helper
node_user -.->|"selects documented models"| node_other_models
node_user -.->|"uses documented fine-tuning"| node_lora
node_user -.->|"pushes or pulls checkpoints"| node_hub
node_user -.->|"tracks experiments"| node_mlflow

click node_base_model "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/base_model.py"
click node_unet "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/UNets.py"
click node_unet_torch "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/UNets.py"
click node_double_conv "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/lib/convolutions.py"
click node_loss_factory "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/loss/loss.py"
click node_losses "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/loss/loss.py"
click node_data_helper "https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/base/data.py"
click node_other_models "https://github.com/sebastien-doyez2812/openml-core/tree/main/src/openmlcore/models"
click node_lora "https://github.com/sebastien-doyez2812/openml-core/tree/main/src/openmlcore/models"

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_base_model,node_user toneBlue
class node_unet,node_unet_torch,node_double_conv,node_dataset,node_checkpoint toneAmber
class node_loss_factory,node_losses,node_data_helper toneMint
class node_other_models,node_lora,node_hub,node_mlflow toneRose
class node_torch_loader,node_optimizer toneIndigo
```

## Components

### Model API

- [BaseModel](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/base_model.py): `src/openmlcore/models/base_model.py`

### Model Architecture

- [UNet wrapper](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/UNets.py): `src/openmlcore/models/UNets.py`
- [U-Net network](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/UNets.py): `src/openmlcore/models/UNets.py`
- [DoubleConv blocks](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/models/lib/convolutions.py): `src/openmlcore/models/lib/convolutions.py`

### Training Components

- [LossFactory](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/loss/loss.py): `src/openmlcore/loss/loss.py`
- [Loss functions](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/loss/loss.py): `src/openmlcore/loss/loss.py`
- [Custom DataLoader](https://github.com/sebastien-doyez2812/openml-core/blob/main/src/openmlcore/base/data.py): `src/openmlcore/base/data.py`

### Documented Capabilities

- [Other architectures](https://github.com/sebastien-doyez2812/openml-core/tree/main/src/openmlcore/models): `src/openmlcore/models`
- [LoRA fine-tuning](https://github.com/sebastien-doyez2812/openml-core/tree/main/src/openmlcore/models): `src/openmlcore/models`
- **Hugging Face Hub**
- **MLflow tracking**

### Other components

- **Model user**
- **Training data**
- **Batch loader**
- **Configured optimizer**
- **Checkpoint files**

## Connections

- Model user → BaseModel: configures and invokes
- Model user → UNet wrapper: selects architecture
- UNet wrapper → U-Net network: creates
- U-Net network → DoubleConv blocks: uses blocks
- Model user → Batch loader: supplies batches
- Batch loader → BaseModel: yields batches
- BaseModel → U-Net network: runs forward
- BaseModel → Loss functions: computes training loss
- BaseModel → Configured optimizer: updates parameters
- Model user → LossFactory: selects loss
- LossFactory → Loss functions: creates
- BaseModel → Checkpoint files: saves and loads weights
- Model user → Custom DataLoader: may use
- Model user → Other architectures: selects documented models
- Model user → LoRA fine-tuning: uses documented fine-tuning
- Model user → Hugging Face Hub: pushes or pulls checkpoints
- Model user → MLflow tracking: tracks experiments
