Repository navigation
Version 3.0.2
Version 3.0.2 fixes low-precision reductions and regularization, small-batch
regularization, and NumPy sampler inputs. Public signatures and minimum
supported Python, PyTorch, and NumPy versions are unchanged.
Numerical fixes
ClassWeightedReducermultiplies and averages float16 and bfloat16 losses
in float32, then returns the scalar in the input dtype. Stored weights keep
their precision until multiplication, avoiding premature underflow,
overflow, and rounding
(#775).CenterInvariantRegularizerwidens float16 and bfloat16 inputs before
computing norms and squared deviations. Its reduced scalar remains
float32 for those inputs so a later regularization weight can scale a
large finite penalty. This corrects loss values and gradients affected by
low-precision rounding or overflow; float32 and float64 behavior and the
configurable Lp norm are preserved
(#776).RegularFaceRegularizerreturns differentiable zero for empty and singleton
inputs. It continues to validate its inputs and retains the existing
nearest-neighbor objective for two or more centers
(#777).
Sampler inputs
Samplers preserve categorical and hashable NumPy label values and accept
views with negative strides or non-native byte order. Invalid label
dimensions and hierarchy columns produce descriptive errors at construction
(#778).
Benchmark tooling
Capacity searches report a batch size only after successful confirmation.
They return no verified capacity when every probe or a confirmation fails,
preserve the confirmation failure status, and correctly refine brackets
whose starting batch is not aligned to the search granularity. Invalid
search settings are rejected before launching a probe
(#779).
Previously published benchmark measurements are unchanged.
Contributors
Thanks to @Afloat16 for all five fixes. The
original contribution commits are preserved in this release.