Monty.Experiment.RecognitionStrategy.RecognitionCounter (ExTbpMonty.Core v0.1.0)

Copy Markdown View Source

The episode's counters, and the mode they are counting in.

Mirrors tbp/monty/experiment/recognition_strategy.py::RecognitionCounter. step counts every timestep; matching_steps and exploring_steps count only the steps where a learning module actually updated, which is why they can lag behind step — a policy that limits matching steps must not be fooled by a step where nothing was perceived.

Summary

Functions

Counts a step, and the mode-dependent counter with it.

Counters for a fresh episode in mode.

Types

t()

@type t() :: %Monty.Experiment.RecognitionStrategy.RecognitionCounter{
  exploring_steps: non_neg_integer(),
  matching_steps: non_neg_integer(),
  mode: Monty.Frameworks.Experiments.Mode.ExperimentMode.t(),
  step: non_neg_integer()
}

Functions

count_step(counter, updated?, is_exploring?)

@spec count_step(t(), boolean(), boolean()) :: t()

Counts a step, and the mode-dependent counter with it.

Monty increments step on every step and matching_steps/exploring_steps only when a learning module updated; :updated is that second fact, so the loop says what happened rather than the counter guessing.

new(mode)

@spec new(Monty.Frameworks.Experiments.Mode.ExperimentMode.t()) :: t()

Counters for a fresh episode in mode.