A modular ML framework for training and evaluation tasks
Project description
About the Project
XFlow is a lightweight modular machine-learning framework.
Originally created for physics research, it's now evolving toward generic scientific applications ML workflows: Data → Processing → Modeling
Core Data Processing Pipeline (Computational Map example)
flow is a step-based computation map for data processing.
Inputs (possibly different data types) move through discrete steps. At each step, a sample either passes through unchanged (identity) or is transformed by a node. Nodes can be multi-input and multi-output, so the map can split and merge data streams. Optional meta nodes (debug, checks, routing) can log, validate, stop, or redirect the pipeline without changing the core step structure.
%%{init: {"themeVariables": {"fontSize": "15px"}, "flowchart": {"htmlLabels": true}}}%%
flowchart TD
classDef src fill:#0b1220,stroke:#334155,stroke-width:1px,color:#e2e8f0;
classDef op fill:#0f172a,stroke:#38bdf8,stroke-width:2px,color:#e2e8f0;
classDef io fill:#111827,stroke:#94a3b8,stroke-width:1px,color:#e5e7eb;
classDef gate fill:#1f2937,stroke:#f59e0b,stroke-width:2px,color:#fde68a;
classDef stop fill:#2a0f12,stroke:#fb7185,stroke-width:2px,color:#fecdd3;
subgraph Inputs["Inputs"]
DIR["dir: str<br/>/data/run_042"]:::src
CFG["config: str<br/>YAML or JSON"]:::src
A1["sensor A:<br/>array<float>"]:::src
A2["sensor B:<br/>int"]:::src
end
READ["<b>ReadImages</b><br/>(dir -> images)"]:::op
PARSE["<b>ParseConfig</b><br/>(str -> dict)"]:::op
DIR --> READ
CFG --> PARSE
IMGS["images:<br/>tensor[H,W,C,N]"]:::io
CONF["config:<br/>dict"]:::io
READ --> IMGS
PARSE --> CONF
LOG["<b>LogConfig</b><br/>(print or save)"]:::op
CONF --> LOG
JOIN["<b>AlignAndEnrich</b><br/>(images -> 2 outputs)"]:::op
IMGS --> JOIN
subgraph JOIN_OUT[" "]
direction LR
ALN["aligned_images:<br/>tensor[...]"]:::io
REP["report:<br/>md or json"]:::io
end
style JOIN_OUT fill:transparent,stroke:transparent
JOIN --> ALN
JOIN --> REP
FUSE["<b>FuseSensors</b><br/>(2 signals -> 1 feature vector)"]:::op
A1 --> FUSE
A2 --> FUSE
FEAT["features:<br/>vector<float>"]:::io
FUSE --> FEAT
GATE{"<b>QualityGate</b><br/>(meets requirements?)"}:::gate
ALN --> GATE
FIX["<b>Remediate</b><br/>(cleanup, re-run, notify)"]:::op
STOP["STOP<br/>(fail fast)"]:::stop
GATE -->|fail| FIX
FIX --> STOP
subgraph Outputs["Outputs"]
OUT["artifacts:<br/>aligned_images + features + report"]:::io
end
ALN --> OUT
FEAT --> OUT
REP --> OUT
GATE -->|pass| OUT
Getting Started
Installation
Install from PyPI:
pip install xflow-py
Clone the repository and install in editable mode:
git clone https://github.com/Andrew-XQY/XFlow.git
cd XFlow
pip install -e .
Built With
- Python 3.12
- TensorFlow 2.x
- Keras 3.x
- PyTorch 2.5.x
License
This project is licensed under the MIT License. See the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xflow_py-0.2.0.tar.gz.
File metadata
- Download URL: xflow_py-0.2.0.tar.gz
- Upload date:
- Size: 220.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
370bcff52a25d8a3c45bc91f0222d9865811d74867e0951cce5bfc55f351016c
|
|
| MD5 |
dec933306b7137b20387df768be25eda
|
|
| BLAKE2b-256 |
02ce3efee04062c9a632af633b24b8b5db5061ebdf1c7e7919d77cc15b651430
|
File details
Details for the file xflow_py-0.2.0-py3-none-any.whl.
File metadata
- Download URL: xflow_py-0.2.0-py3-none-any.whl
- Upload date:
- Size: 92.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4093678be2d24a9fd7299d5e42ec999ab86797e7e6eff93d4b54ad81c19dae5e
|
|
| MD5 |
e000f0de85fb6953aed506b909cce462
|
|
| BLAKE2b-256 |
aaf9973f0ecfe09231249075e960fa15964d42be0646775dd46fe2b25f4a3f6c
|