pulsatrix
Loading...
Searching...
No Matches
trial.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <optional>
9#include <string>
10#include <vector>
11
13
14namespace pulsatrix {
15
19 std::string tag;
20 double value;
21 int step;
22};
23
31class Trial {
32public:
33 explicit Trial(Configuration configuration) : configuration_(std::move(configuration)) {}
34
36 [[nodiscard]] const Configuration& configuration() const { return configuration_; }
37
39 void RecordMetric(std::string tag, double value, int step) {
40 metrics_.push_back(MetricRecord{std::move(tag), value, step});
41 }
42
44 [[nodiscard]] const std::vector<MetricRecord>& metrics() const { return metrics_; }
45
51 [[nodiscard]] std::optional<double> LatestMetric(const std::string& tag) const {
52 for (auto it = metrics_.rbegin(); it != metrics_.rend(); ++it) {
53 if (it->tag == tag) {
54 return it->value;
55 }
56 }
57 return std::nullopt;
58 }
59
66 [[nodiscard]] std::optional<double> BestMetric(const std::string& tag, bool maximize) const {
67 std::optional<double> best;
68 for (const auto& record : metrics_) {
69 if (record.tag != tag) {
70 continue;
71 }
72 if (!best.has_value() || (maximize ? record.value > *best : record.value < *best)) {
73 best = record.value;
74 }
75 }
76 return best;
77 }
78
79private:
80 Configuration configuration_;
81 std::vector<MetricRecord> metrics_;
82};
83
84} // namespace pulsatrix
A configuration paired with the metric history observed while evaluating it (instantiate a network un...
Definition trial.hpp:31
const std::vector< MetricRecord > & metrics() const
Every metric recorded, in recording order.
Definition trial.hpp:44
Trial(Configuration configuration)
Definition trial.hpp:33
std::optional< double > LatestMetric(const std::string &tag) const
The most recently recorded value for tag (by recording order, not by step number – a caller recording...
Definition trial.hpp:51
const Configuration & configuration() const
The hyperparameter configuration this trial evaluates.
Definition trial.hpp:36
std::optional< double > BestMetric(const std::string &tag, bool maximize) const
The best value recorded for tag.
Definition trial.hpp:66
void RecordMetric(std::string tag, double value, int step)
Records one metric observation.
Definition trial.hpp:39
Definition acquisition_functions.hpp:16
std::map< std::string, ConfigValue > Configuration
A concrete hyperparameter configuration: parameter name -> concrete value.
Definition search_space.hpp:46
Typed hyperparameter search-space description: named parameters, each continuous, log-uniform,...
One recorded metric value: a named tag, its value, and the training step it was logged at (mirrors Me...
Definition trial.hpp:18
std::string tag
Definition trial.hpp:19
int step
Definition trial.hpp:21
double value
Definition trial.hpp:20