pulsatrix
Loading...
Searching...
No Matches
metrics_sink.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <string>
9
10#include "pulsatrix/tensor.hpp"
11
12namespace pulsatrix {
13
23public:
24 virtual ~MetricsSink() = default;
25
32 virtual void log_scalar(const std::string& tag, double value, int step) = 0;
33
40 virtual void log_histogram(const std::string& tag, const Tensor& values, int step) = 0;
41};
42
45public:
46 void log_scalar(const std::string&, double, int) override {}
47 void log_histogram(const std::string&, const Tensor&, int) override {}
48};
49
50} // namespace pulsatrix
Interface the training loop logs scalars/histograms through. Concrete writers (TensorBoard event form...
Definition metrics_sink.hpp:22
virtual void log_scalar(const std::string &tag, double value, int step)=0
Logs a scalar value (e.g. loss, accuracy).
virtual void log_histogram(const std::string &tag, const Tensor &values, int step)=0
Logs a distribution of values (e.g. a weight tensor's values).
virtual ~MetricsSink()=default
Does nothing. The charter's stated minimum viable MetricsSink implementation.
Definition metrics_sink.hpp:44
void log_scalar(const std::string &, double, int) override
Logs a scalar value (e.g. loss, accuracy).
Definition metrics_sink.hpp:46
void log_histogram(const std::string &, const Tensor &, int) override
Logs a distribution of values (e.g. a weight tensor's values).
Definition metrics_sink.hpp:47
N-dimensional tensor. Owns its data buffer exclusively; a DeviceBackend* is injected (not owned) – th...
Definition tensor.hpp:29
Definition acquisition_functions.hpp:16
N-dimensional tensor – owns a buffer via DeviceBackend*, RAII (Rule of Five).