oa::SacTrainer

Minimal fixed-alpha SAC trainer. Actor forward returns [B, 2*A] containing mean then log-standard-deviation; each critic consumes [observation, action] concatenated on the last axis and returns [B] or [B,1]. Its independent actor and critic update loops are composed rather than hidden by inheritance.

Public Methods

const oa::ItTraining & oa::SacTrainer::actorTrainingLoop()
oa::ItTraining & oa::SacTrainer::actorTrainingLoop()
bool oa::SacTrainer::isDone()
const SacTrainerMetrics & oa::SacTrainer::metrics()
oa::Status oa::SacTrainer::syncTargets()
const oa::ItTraining & oa::SacTrainer::trainingLoop()
oa::ItTraining & oa::SacTrainer::trainingLoop()
oa::Status oa::SacTrainer::update()

Static Public Methods

static oa::Result<oa::UniquePtr<SacTrainer>> oa::SacTrainer::create(oa::Engine & inEngine, oa::Module & inActor, oa::Module & inCritic1, oa::Module & inCritic2, oa::Module & inTargetCritic1, oa::Module & inTargetCritic2, oa::Optimizer & inActorOptimizer, oa::Optimizer & inCriticOptimizer, ReplayBuffer & inReplay, const SacTrainerConfig & inConfig)

Constructor & Destructor Documentation

void oa::SacTrainer::~SacTrainer()
No public source comment is attached to this declaration.

Public Method Documentation

const oa::ItTraining & oa::SacTrainer::actorTrainingLoop()
No public source comment is attached to this declaration.

Returns

const oa::ItTraining &

The declared return value.

oa::ItTraining & oa::SacTrainer::actorTrainingLoop()
No public source comment is attached to this declaration.

Returns

oa::ItTraining &

The declared return value.

bool oa::SacTrainer::isDone()
No public source comment is attached to this declaration.

Returns

bool

The declared return value.

const SacTrainerMetrics & oa::SacTrainer::metrics()
No public source comment is attached to this declaration.

Returns

const SacTrainerMetrics &

The declared return value.

oa::Status oa::SacTrainer::syncTargets()
No public source comment is attached to this declaration.

Returns

oa::Status

The declared return value.

const oa::ItTraining & oa::SacTrainer::trainingLoop()
No public source comment is attached to this declaration.

Returns

const oa::ItTraining &

The declared return value.

oa::ItTraining & oa::SacTrainer::trainingLoop()
SAC has two exact optimizer units. The critic loop is the primary update controller; the actor loop remains separately observable.

Returns

oa::ItTraining &

The declared return value.

oa::Status oa::SacTrainer::update()
No public source comment is attached to this declaration.

Returns

oa::Status

The declared return value.

static oa::Result<oa::UniquePtr<SacTrainer>> oa::SacTrainer::create( oa::Engine & inEngine, oa::Module & inActor, oa::Module & inCritic1, oa::Module & inCritic2, oa::Module & inTargetCritic1, oa::Module & inTargetCritic2, oa::Optimizer & inActorOptimizer, oa::Optimizer & inCriticOptimizer, ReplayBuffer & inReplay, const SacTrainerConfig & inConfig )
No public source comment is attached to this declaration.

Parameters

inEngine
oa::Engine &

inActor
oa::Module &

inCritic1
oa::Module &

inCritic2
oa::Module &

inTargetCritic1
oa::Module &

inTargetCritic2
oa::Module &

inActorOptimizer
oa::Optimizer &

inCriticOptimizer
oa::Optimizer &

inReplay
ReplayBuffer &

inConfig
const SacTrainerConfig &

Returns

oa::Result<oa::UniquePtr<SacTrainer>>

The declared return value.