Property-Based Testing for Robust Softmax and Cross-Entropy
Abstract
A recent paper of Barron et. al. (2026) identified two numerical issues with the softmax and cross-entropy functions in virtually all standard machine learning libraries (e.g., PyTorch and JAX). We show that these issues can be recovered through simple property-based tests in Hypothesis. However, our tests identify an additional edge case where their implementation fails. We then propose an even more robust softmax implementation which passes these tests and also supports use in causal attention masking. We compare our implementation with theirs and discuss some of the differences. Overall, this work shows that property-based testing can be a powerful tool for discovering and fixing numerical issues in machine learning libraries. Our implementations and property-based tests can be found at https://github.com/mmaaz-git/softmax-fix.
Figures & tables
| Implementation | Forward probabilities | Computed Jacobian |
|---|---|---|
| Standard (PyTorch) | All zeros | |
| Barron et al. (2026) (PyTorch translation) | All NaNs | |
| Ours | All zeros |
Robust Loss Functions
Robust loss functions limit the influence of outliers, noisy labels, and corrupted observations during model training.
See all 50 papers