Skip to content

YAML Support#24

Merged
ben-nowacki merged 26 commits intoREIL-UConn:mainfrom
ben-nowacki:main
Mar 19, 2026
Merged

YAML Support#24
ben-nowacki merged 26 commits intoREIL-UConn:mainfrom
ben-nowacki:main

Conversation

@ben-nowacki
Copy link
Copy Markdown
Collaborator

@ben-nowacki ben-nowacki commented Mar 19, 2026

Description

Added to/from YAML config support for ModelGraph, Phase, and Experiment classes

  • to_yaml() and from_yaml() methods added to primary classes (e.g,. Experiment)
  • YAML files store full configuration specs of the translated object, allowing from object instantiation from a YAML file

Reworked phase result containers

  • Added new ArtifactStore for user-created artifact logging (e.g., matplotlib figures)
  • Refactored ExecutionContext tracking to live within an ExecutionStore, matching data storage pattern of Metrics and Artifacts
  • Added ability to save phase results (metrics, artifacts, and execution data) to disk.
    • On-disk results are persisted across serialization cycles
    • Results access from PhaseResults (e.g., results.tensors()) works regardless of in-memory vs on-disk storage

Added new Predicates class

  • Wraps lambda conditions (e.g., "lambda x: x <= 45") used in ConditionSplitter and FeatureSet filtering logic
  • Direct storage of lambda function prevented serialization of FeatureSets containing these lambda conditions in the data processing history
  • Predicates class now wraps lambda functions allowing for full serialization/deserialization cycles

Bug fixes

  • Fixed stale FeatureSetView references of EvalPhases during CrossValidationFolds
  • Fixed optimizer and model living on different devices when using hardware acceleration
  • Fixed serialization issue with ConditionSplitter lambda conditions. Solved via new Predicates class

Documentation:

  • Added how-to notebook on using and creating Callbacks
  • Added how-to notebook on using CrossValidation

Related Issues

N/A

How Has This Been Tested?

  • Local pytest run
  • CI passes
  • Manual checks

Checklist

  • My code follows project style guidelines: nox -s pre-commit
  • I have added tests that prove my fix is effective or my feature works: nox -s unit
  • I have updated documentation if needed: nox -s docs
  • I have linked related issues

…r more intuitive result access from experiment history
…ontext swaps (ie CV was not updating EvalPhase splits)
@ben-nowacki ben-nowacki marked this pull request as ready for review March 19, 2026 19:56
@ben-nowacki ben-nowacki merged commit d93e3dc into REIL-UConn:main Mar 19, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants