fovi.training.cmf_metrics

Deterministic CMF assignment and sample-weighted validation statistics.

fovi.training.cmf_metrics.deepcopy(x, memo=None, _nil=[])[source]

Deep copy operation on arbitrary Python objects.

See the module’s __doc__ string for more info.

fovi.training.cmf_metrics.validation_cmf_indices(batch_size: int, offset: int, levels: int, device: device, rank: int = 0, world_size: int = 1) → Tensor[source]

Assign the strided distributed validation traversal to levels in order.

class fovi.training.cmf_metrics.CmfValidationMetrics(values: tuple[float, ...], loss: Module, device: device)[source]

Bases: object

Accumulate per-level sums/counts on device, reducing once after validation.

__init__(values: tuple[float, ...], loss: Module, device: device) → None[source]
count(indices: Tensor) → None[source]

Record images once, independently of probe and fixation metrics.

update_loss(name: str, logits: Tensor, target: Tensor, indices: Tensor) → None[source]

Reduce class/label losses per image before grouping by CMF level.

update_accuracy(name: str, logits: Tensor, target: Tensor, indices: Tensor) → None[source]

Match the trainer’s multiclass top-k and micro multilabel accuracy.

compute() → dict[str, float][source]

Reduce sums and counts across ranks; omit empty level metrics.