What keras-team/keras shipped
Written by FoxPlug from public releases; not affiliated with Keras. An automatic summary of the public release, pull request and commit data of github.com/keras-team/keras. Keras did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- PyTorch trainer now supports model parallel training through DTensor integration, automatically distributing data across sharded operations. Pull request #23404
- Added experimental `keras.ops.grad()` function for computing gradients, implemented on TensorFlow, JAX, and Torch backends. Pull request #23670
- Fixed duplicate variable storage in TensorFlow SavedModel export by eliminating redundant registration of underlying tf.Variable objects. Pull request #23563
- Fixed OpenVINO backend issues with while loop captures and scalar repeats that prevented encoder-decoder generation with dynamic dimensions. Pull request #23613
- Loss functions now validate that label_smoothing values are within [0, 1] range, raising ValueError for out-of-range inputs. Pull request #23504
- Fixed JAX numpy.cross support for 2D inputs following JAX's alignment with NumPy's removal of that functionality. Pull request #23769
- `keras.ops.linalg.norm` now accepts lists for the axis parameter across all backends. Pull request #23721
- Added backend-agnostic implementation for rad2deg operation. Pull request #23743
- Added backend-agnostic implementation for deg2rad operation. Pull request #23722
- Added backend-agnostic implementation for fmin operation. Pull request #23767
Why it matters
This week brings improvements to backend interoperability and fixes for export and training workflows. The addition of gradient computation as a public operation and PyTorch model parallelism support expand what developers can do across different backends. Bug fixes in SavedModel export, OpenVINO loops, and loss validation address real-world usage issues.
Changelog entry
- Model parallel training support added to PyTorch trainer through DTensor integration with automatic data distribution Pull request #23404
- Added experimental keras.ops.grad(f, argnums=0) for computing gradients across TensorFlow, JAX, and Torch Pull request #23670
- Fixed duplicate variable storage in TensorFlow SavedModel export Pull request #23563
- Fixed OpenVINO while_loop capture and scalar repeat issues with dynamic dimensions Pull request #23613
- Added label_smoothing validation in categorical_crossentropy and binary_crossentropy loss functions Pull request #23504
- Fixed JAX numpy.cross support for 2D inputs Pull request #23769
- Fixed keras.ops.linalg.norm to accept lists for axis parameter Pull request #23721
- Added backend-agnostic rad2deg operation Pull request #23743
- Added backend-agnostic deg2rad operation Pull request #23722
- Added backend-agnostic fmin operation Pull request #23767
- Added backend-agnostic fmax operation Pull request #23759
- Fixed angle operation with backend-agnostic implementation Pull request #23706
Keras updates: PyTorch model parallel training, experimental grad() operation, SavedModel export fixes, and OpenVINO loop fixes. Plus validation improvements and new backend-agnostic ops.
Keras ships PyTorch model parallel training via DTensor, experimental keras.ops.grad() for gradient computation, fixes for TensorFlow SavedModel export, OpenVINO backend improvements, and expanded backend-agnostic operations. This week also includes input validation enhancements for loss functions and fixes for edge cases across multiple backends.