Skip to main content

Framework that provides tools allowing for monitoring training of ML models with the aim to be executed in firmware developed under the ATLAS NextGen WP21 project

Project description

wp21_train

A modular, extensible Python framework designed for managing data parsing, serialization, and metadata tracking in machine learning workflows — especially for hardware-aware applications such as HLS and AIE profiling. Built with physicists and hardware engineers in mind, wp21_train integrates support for CERN ROOT I/O, common formats like JSON and Pickle, and parsing of Xilinx toolchain outputs.


🚀 Features

  • Unified interface for reading/writing training data and metadata
  • ✅ Supports JSON, Pickle, and ROOT formats
  • ✅ Parsers for:
    • HLS reports (Vivado HLS)
    • AIE profiling reports (Vitis AI Engine)
  • ✅ A training callback interface to log key events and outputs
  • ✅ Lightweight type-to-symbol conversion utility
  • ✅ Versioned with easy integration (__version__)

📦 Included Modules

Module Description
savers/json_adapter.py JSON-based serialization
savers/pickle_adapter.py Pickle-based serialization
savers/root_adapter.py ROOT I/O serialization (requires ROOT installed)
parsers/hls_parser.py XML parsing of HLS synthesis reports
parsers/aie_parser.py XML parsing of AIE runtime profiling
callbacks/base_callback.py Base callback for training pipelines
utils/utility.py Type-shortening utility for metadata tagging
utils/version.py Package versioning (__version__ = "0.2.0")

🔧 Installation

From PyPI

pip install wp21_train

📁 Example Usage

🔄 JSON / Pickle / ROOT Adapters

from wp21_train.savers import json_adapter, pickle_adapter, root_adapter

adapter = json_adapter("results", dump_data=my_data, dump_meta=my_metadata)
adapter.write_data()

meta, data = adapter.read_data()

🧠 HLS Parser

from wp21_train.parsers import hls_parser

parser = hls_parser("hls_report.xml")
print(parser._data)        # extracted info
print(parser._meta_data)   # associated metadata

⚙️ AIE Parser

from wp21_train.parsers import aie_parser

parser = aie_parser("aie_profile.xml")
print(parser._data)

📋 Training Callback

from wp21_train.callbacks import base_callback

cb = base_callback(project_name="FastML4Jets")
cb.on_train_begin()
# training loop here
cb.on_train_end()

🧬 Type Utility

from wp21_train.utils.utility import get_short_type

print(get_short_type(42))     # 'd'
print(get_short_type("abc"))  # 's'

🧪 Testing

pytest tests/

📜 Requirements

  • Python ≥ 3.7
  • uproot (for reading ROOT files)
  • xml.etree.ElementTree (standard lib, for HLS/AIE parsing)
  • CERN ROOT (installed and configured) if you use .root I/O

⚠️ Note About ROOT

This package supports .root file serialization and reading via CERN ROOT. If you intend to use this feature, ensure that ROOT is installed and properly sourced in your environment. You can install ROOT via Conda:

conda install -c conda-forge root

Or follow the official installation guide:
https://root.cern/install/


🧠 Versioning

The current package version is defined in:

from wp21_train.utils.version import __version__

🔖 License

This project is licensed under the MIT License. See the LICENSE file for details.


👤 Author

Ioannis Xiotidis
Email: ioannis.xiotidis@cern.ch


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wp21_train-0.2.1.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wp21_train-0.2.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file wp21_train-0.2.1.tar.gz.

File metadata

  • Download URL: wp21_train-0.2.1.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for wp21_train-0.2.1.tar.gz
Algorithm Hash digest
SHA256 47017b85409190842ba19ae0779c5c07e2c0819fb72e0323bf3ccda904e8a2aa
MD5 f2e453381d1a67e62df5c0143716a970
BLAKE2b-256 933b6a70838d34b219849a8afbce7c688019a4fcbe8330a6f689235ca8029c0b

See more details on using hashes here.

File details

Details for the file wp21_train-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: wp21_train-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 9.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for wp21_train-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1cd714923fdf386818bcc2b8278813b2d64844bd12bb9614b9dd4ea85790ea9d
MD5 d1080dd69dd09fcba6ec82b51cd5bf03
BLAKE2b-256 7ac0b9be98f5e2a9bc792d6499d62ded0beb551e28da68efd542198033628155

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page