border_core/record.rs
1//! Types for recording various values obtained during training and evaluation.
2//!
3//! [`Record`] is a [`HashMap`], where its key and values represents various values obtained during training and
4//! evaluation. A record may contains multiple types of values.
5//!
6//! ```no_run
7//! use border_core::record::{Record, RecordValue};
8//!
9//! // following values are obtained with some process in reality
10//! let step = 1;
11//! let obs = vec![1f32, 2.0, 3.0, 4.0, 5.0];
12//! let reward = -1f32;
13//!
14//! let mut record = Record::empty();
15//! record.insert("Step", RecordValue::Scalar(step as f32));
16//! record.insert("Reward", RecordValue::Scalar(reward));
17//! record.insert("Obs", RecordValue::Array1(obs));
18//! ```
19//!
20//! A typical usecase is to record internal values obtained in training processes.
21//! [Trainer::train](crate::Trainer::train), which executes a training loop, writes a record
22//! in a [`Recorder`] given as an input argument.
23//!
24//! [`HashMap`]: std::collections::HashMap
25mod base;
26mod buffered_recorder;
27mod null_recorder;
28mod recorder;
29mod storage;
30
31pub use base::{Record, RecordValue};
32pub use buffered_recorder::BufferedRecorder;
33pub use null_recorder::NullRecorder;
34pub use recorder::{AggregateRecorder, Recorder};
35pub use storage::RecordStorage;