Learner
python
Learner(context: RuntimeContext[DQNExperimentConfiguration], learner_model: ThreadSafeModel, target_model: DQNModel, replay_buffer: ReplayBuffer, optimizer: torch.optim.Optimizer, lr_schedule: Schedule, action_masker: ActionMasker | None = None, reward_shaping: RewardShapingPipeline | None = None) -> NoneLearner component responsible for updating the DQN model using transitions from the replay buffer.
Initialize the Learner.
Parameters:
context(RuntimeContext[DQNExperimentConfiguration]) – The shared runtime context.learner_model(ThreadSafeModel) – The learner model container (with lock).target_model(DQNModel) – The target DQN model.replay_buffer(ReplayBuffer) – The experience replay buffer.optimizer(Optimizer) – The PyTorch optimizer.lr_schedule(Schedule) – Schedule for the learning rate.action_masker(ActionMasker | None) – Optional ActionMasker to restrict next-action selection in target Q-value computation to only actions the actor can take.reward_shaping(RewardShapingPipeline | None) – Optional learner-owned reward-shaping pipeline.
Properties
action_masker
python
action_masker: ActionMasker | NoneGet the action masker.
config
python
config: DQNExperimentConfigurationGet the experiment configuration.
iterations
python
iterations: intGet the number of learner iterations performed.
replay_buffer
python
replay_buffer: ReplayBufferGet the replay buffer.
target_updates
python
target_updates: intGet the number of target model updates performed.
total_skipped_updates
python
total_skipped_updates: intGet the total number of skipped PER priority updates.
Methods
replace_replay_buffer
python
replace_replay_buffer(replay_buffer: ReplayBuffer) -> NoneReplace the replay buffer used for sampling.
Parameters:
replay_buffer(ReplayBuffer) – The new replay buffer.
restore_state
python
restore_state(state: DQNLearnerRuntimeState) -> NoneRestore checkpointed learner counters.
Parameters:
state(DQNLearnerRuntimeState) – The learner runtime state to restore.
run
python
run(stop_event: Event, current_step: Callable[[], int], policy: CheckpointPolicy) -> NoneMain learner loop: repeatedly perform learning steps, notify the tester on target updates, feed automatic rollback monitoring, and manage periodic/final checkpointing.
Parameters:
stop_event(Event) – Signals when training should stop.current_step(Callable[[], int]) – Returns the current global environment step count.policy(CheckpointPolicy) – The checkpoint/rollback seam this loop drives.
step
python
step(env_steps: int) -> boolPerform a single learning step.
Parameters:
env_steps(int) – Total number of environment steps performed across all actors.
Returns:
bool– True if a learning step was performed, False if throttled or not enough data.