# chenyaojie1263/hybrid-supervised-inversion-method architecture

> Architecture diagram of the GitHub repository chenyaojie1263/hybrid-supervised-inversion-method, 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/chenyaojie1263/hybrid-supervised-inversion-method
- Repository: https://github.com/chenyaojie1263/hybrid-supervised-inversion-method

## Overview

This repository implements a hybrid supervised prestack-inversion method through two training workflows. In the supervised workflow, training batches seismic data, labels, and low-frequency models, then optimizes a U-Net/GRU model against the labels. In the unsupervised workflow, training uses seismic data, prior predictions, low-frequency models, and a forward operator to define its loss. Both scripts save model checkpoints. The README identifies the workflows; the unsupervised training excerpt provides the clearest evidence of its loss and operator use.

Main entry points: [`Unsupervised learning training.py`](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unsupervised%20learning%20training.py) (Unsupervised training), [`Supervised learning training.py`](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Supervised%20learning%20training.py) (Supervised training), [`Unet_GRU_MODEL.py`](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL.py) (Supervised U-Net GRU), [`Unet_GRU_MODEL_Unsupervised.py`](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL_Unsupervised.py) (Unsupervised U-Net GRU)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_supervised["Supervised workflow"]
  node_supervised_training["Supervised training"]
  node_supervised_model["Supervised U-Net GRU<br/>[Unet_GRU_MODEL.py]"]
  node_supervised_checkpoint["Supervised checkpoint"]
end

subgraph group_unsupervised["Unsupervised workflow"]
  node_unsupervised_training["Unsupervised training"]
  node_unsupervised_model["Unsupervised U-Net GRU"]
  node_unsupervised_checkpoint["Unsupervised checkpoint"]
end

subgraph group_inputs["Data inputs"]
  node_supervised_data["Supervised dataset<br/>[DATA.py]"]
  node_unsupervised_data["Unsupervised dataset<br/>[DATA_un.py]"]
  node_forward_operator["Forward operator"]
end

node_researcher(("Researcher"))

node_researcher -->|"starts training"| node_supervised_training
node_researcher -->|"starts training"| node_unsupervised_training
node_supervised_training -->|"batches data"| node_supervised_data
node_supervised_training -->|"trains model"| node_supervised_model
node_supervised_model -->|"returns prediction"| node_supervised_training
node_supervised_training -->|"saves weights"| node_supervised_checkpoint
node_unsupervised_training -->|"batches data"| node_unsupervised_data
node_unsupervised_training -->|"trains model"| node_unsupervised_model
node_unsupervised_model -->|"returns prediction"| node_unsupervised_training
node_unsupervised_training -->|"applies operator"| node_forward_operator
node_unsupervised_training -->|"saves weights"| node_unsupervised_checkpoint

click node_supervised_training "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Supervised%20learning%20training.py"
click node_supervised_data "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/DATA.py"
click node_supervised_model "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL.py"
click node_supervised_checkpoint "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Supervised%20learning%20training.py"
click node_unsupervised_training "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unsupervised%20learning%20training.py"
click node_unsupervised_data "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/DATA_un.py"
click node_unsupervised_model "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL_Unsupervised.py"
click node_unsupervised_checkpoint "https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unsupervised%20learning%20training.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_supervised_training,node_supervised_model,node_supervised_checkpoint toneBlue
class node_unsupervised_training,node_unsupervised_model,node_unsupervised_checkpoint toneAmber
class node_supervised_data,node_unsupervised_data,node_forward_operator toneMint
class node_researcher toneIndigo
```

## Components

### Supervised workflow

- [Supervised training](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Supervised%20learning%20training.py): `Supervised learning training.py`
- [Supervised U-Net GRU](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL.py): `Unet_GRU_MODEL.py`
- [Supervised checkpoint](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Supervised%20learning%20training.py): `Supervised learning training.py`

### Unsupervised workflow

- [Unsupervised training](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unsupervised%20learning%20training.py): `Unsupervised learning training.py`
- [Unsupervised U-Net GRU](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unet_GRU_MODEL_Unsupervised.py): `Unet_GRU_MODEL_Unsupervised.py`
- [Unsupervised checkpoint](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/Unsupervised%20learning%20training.py): `Unsupervised learning training.py`

### Data inputs

- [Supervised dataset](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/DATA.py): `DATA.py`
- [Unsupervised dataset](https://github.com/chenyaojie1263/hybrid-supervised-inversion-method/blob/main/DATA_un.py): `DATA_un.py`
- **Forward operator**

### Other components

- **Researcher**

## Connections

- Researcher → Supervised training: starts training (evidence: `README.md`)
- Researcher → Unsupervised training: starts training (evidence: `README.md`)
- Supervised training → Supervised dataset: batches data (evidence: `Supervised learning training.py`)
- Supervised training → Supervised U-Net GRU: trains model (evidence: `Supervised learning training.py`)
- Supervised U-Net GRU → Supervised training: returns prediction (evidence: `Supervised learning training.py`)
- Supervised training → Supervised checkpoint: saves weights (evidence: `Supervised learning training.py`)
- Unsupervised training → Unsupervised dataset: batches data (evidence: `Unsupervised learning training.py`)
- Unsupervised training → Unsupervised U-Net GRU: trains model (evidence: `Unsupervised learning training.py`)
- Unsupervised U-Net GRU → Unsupervised training: returns prediction (evidence: `Unsupervised learning training.py`)
- Unsupervised training → Forward operator: applies operator (evidence: `Unsupervised learning training.py`)
- Unsupervised training → Unsupervised checkpoint: saves weights (evidence: `Unsupervised learning training.py`)
