7#include <unordered_map>
71 DeviceBackend* backend_;
75 std::unordered_map<const Tensor*, AdamState> state_;
Adam (Kingma & Ba, 2015): per-parameter moving averages of gradient (m) and squared gradient (v),...
Definition adam_optimizer.hpp:20
void step(Module &module)
Applies one Adam update to every parameter the module exposes.
void zero_grad(Module &module)
Resets every parameter's gradient to zero. Does not reset Adam's moment state.
void set_learning_rate(float learning_rate)
Overwrites the step size used by every subsequent step() call – necessary infrastructure for any mid-...
Definition adam_optimizer.hpp:61
AdamOptimizer(float learning_rate, DeviceBackend *backend, float beta1=0.9f, float beta2=0.999f, float eps=1e-8f)
Constructs an Adam optimizer.
float learning_rate() const
Current step size.
Definition adam_optimizer.hpp:50
Vendor-agnostic compute/memory backend. CPUBackend, CUDABackend (Phase 1.5), and HIPBackend (Phase 1....
Definition device_backend.hpp:219
Base class for every layer type (LinearModule, Conv2DModule, activations, ...).
Definition module.hpp:58
N-dimensional tensor. Owns its data buffer exclusively; a DeviceBackend* is injected (not owned) – th...
Definition tensor.hpp:29
Abstract base every layer subclasses – NVI forward(), pure-virtual LRP contract.
Definition acquisition_functions.hpp:16