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.