Home¶
Overview¶
minrecord is a minimalist Python library to record values in a ML workflow.
In particular, it provides functionalities to track the best value, or the most recent values by
storing a limiting number of values.
It is possible to customize the library e.g. it is possible to define a new logic to track the best
value.
Key Features¶
- 📊 Track Best Values: Automatically track the best value seen during training
- 🔄 Recent History: Store only recent values to minimize memory usage
- ✅ Improvement Detection: Easily check if your model is still improving
- 🎯 Flexible Comparators: Define custom logic to determine what "better" means
- 🗂️ Record Manager: Organize and manage multiple metrics efficiently
- 💾 Serialization: Save and load record states for checkpointing
- 🚀 Minimal Dependencies: Lightweight with only essential dependencies
Below is an example to show how to track the best scalar value when the best value is the maximum value and when the best value is the minimum value.
>>> from minrecord import MaxScalarRecord, MinScalarRecord
>>> record_max = MaxScalarRecord("accuracy")
>>> record_max.update([(0, 42), (None, 45), (2, 46)])
>>> record_max.add_value(40)
>>> record_max.get_best_value()
46
>>> record_min = MinScalarRecord("loss")
>>> record_min.update([(0, 42), (None, 45), (2, 46)])
>>> record_min.add_value(50)
>>> record_min.get_best_value()
42
Documentation¶
- Get Started: Installation instructions
- Quickstart: Quick overview of the main features
- Usage Guide: Detailed patterns and best practices
- FAQ: Frequently asked questions and troubleshooting
- Examples: Complete working examples
- API Reference: Detailed API documentation
API stability¶
While
minrecord is in development stage, no API is guaranteed to be stable from one
release to the next. In fact, it is very likely that the API will change multiple times before a
stable 1.0.0 release. In practice, this means that upgrading minrecord to a new version will
possibly break any code that was using the old version of minrecord.
License¶
minrecord is licensed under BSD 3-Clause "New" or "Revised" license available
in LICENSE file.