ReadoutSpec#

class ibl_bwb_eval.ReadoutSpec(*args, **kwargs)[source]#

Bases: Protocol

What a model needs to size a readout head, and nothing more.

The intersection of the suites’ specs, not a base class, so they stay independent. dim and num_timesteps are properties so a spec deriving them (TS3) and one storing them (TS1) both qualify. num_timesteps is the length of the axis TargetResolution names, 1 for a sequence-level task and the target’s sample count for a timestep-level one, so a model sizes its head without branching on it.