Keras v3.14.1 Release Notes
Release Date: 2026-05-07 // about 1 month ago-
Saving & Reloading
Harden path and link resolution when extracting files from archives (#22839)
- Fixed link resolution bug when validating links extracted from TAR archives.
- Fixed path confusion bug when validating files extracted from ZIP and TAR archives (including
.kerasfiles). - Added path validation when extracting assets from Orbax checkpoints.
Harden H5 validation code and apply it to legacy .h5 files (#22801)
- Disallow external links and virtual datasets in H5 files.
- Also apply all the validation to the legacy .h5 file extraction.
👌 Improve validation and error reporting in functional model deserialization (#22800)
- Detect loops in the graph when deserializing a functional model.
- Improve error reporting for missing nodes in the graph.
🛠 Other Fixes
- 🛠 Fix data sharding logic in
ModelParallel(#22179) 🛠 Fix regression with metrics passed to
compile(#22663)- Fixed a regression introduced in #22308 where
y_pred(as a list) andy_true(as a dict with keys matching Functional model output names) were not ordered identically and could be paired incorrectly.
- Fixed a regression introduced in #22308 where
🛠 Fix regression preventing compilation with the
L1L2regularizer (#22629)🛠 Fix test compatibility with JAX 0.10.0 (#22694)
Full Changelog : v3.14.0...v3.14.1
Previous changes from v3.14.0
-
Highlights
- Orbax Checkpoint Integration : Full support for Orbax checkpoints, including sharding, remote paths, and step recovery.
- ⬆️ Quantization Upgrades : Added support for Activation-aware Weight Quantization (AWQ) and Asymmetric INT4 Sub-Channel Quantization.
- Batch Renormalization in BatchNorm : Added batch renormalization feature to the
BatchRenormalizationlayer. - 🆕 New Optimizer : Added
ScheduleFreeAdamWoptimizer. - Gated Attention : Introduced optional Gated Attention support in
MultiHeadAttentionandGroupedQueryAttentionlayers.
🆕 New Features and Operations
Multi-Backend Operations
- NaN-aware NumPy Operations : Added support for
nanmin,nanmax,nanmean,nanmedian,nanvar,nanstd,nanprod,nanargmin,nanargmax, andnanquantileinkeras.ops.numpy. - 🆕 New Math & Linear Algebra Operators : Added
nextafter,ptp,view,sinc,fmod,i0,fliplr,flipud,rad2deg,geomspace,depth_to_space,space_to_depth, andfold.
Preprocessing and Layers
- CLAHE Layer : Added Contrast Limited Adaptive Histogram Equalization preprocessing layer.
- 👍 Adapt Support for Iterables : Preprocessing layers now support Python iterables in the
adapt()method, which allows the direct use of Grain datasets.
👍 OpenVINO Backend Support
⚡️ The OpenVINO backend received a massive update, implementing a wide array of NumPy and Neural Network operations to achieve feature parity with other backends:
- NumPy Operations :
vander,trapezoid,corrcoef,correlate,flip,diagonal,cbrt,hypot,trace,kron,argpartition,logaddexp2,ldexp,select,round,vstack,hsplit,vsplit,tile,nansum,tensordot,exp2,trunc,gcd,unravel_index,inner,cumprod,searchsorted,hanning,diagflat,norm,histogram,lcm,allclose,real,imag,isreal,kaiser,shuffle,einsum,quantile,conj,randint,in_top_k,signbit,gamma,heaviside,var,std,inv,solve,cholesky_inverse,fft,fft2,ifft2,rfft,irfft,stft,istft,scatter,binomial,unfold,QR decomposition,view, and more. - Neural Network Operations : Added support for
separable_conv,conv_transpose,adaptive_average_pool,adaptive_max_pool,RNN,LSTM, andGRU. - Control Flow Operations : Implemented
cond,scan,associative_scan,map,switch,fori_loop, andvectorized_map.
🐛 Bug Fixes and Improvements
Backend Specific Improvements
- PyTorch : Dynamic shapes support in export, device selection improvements, and bug fixes to the CuDNN based LSTM and GRU implementation.
- JAX : Improved RNG handling in
FlaxLayerandJaxLayer, variable jitting improvements, and direct JAX-to-ONNX export. - NumPy : Enabled masking support for the NumPy backend.
Other Improvements
- 🛠 Fixed multiple symbolic shape bugs across layers like
Conv1DTranspose,IndexLookup, andTextVectorization. - 🛠 Fixed activity regularizer normalization by batch size.
- 👌 Improved
Sequentialerror messages for incompatible layers. - Minimized memory usage issues in
sparse_categorical_crossentropy.
🆕 New Contributors
We would like to thank our new contributors for making their first contribution to the Keras project:
- @vaidik-gupta made their first contribution in #21939
- @HyperPS made their first contribution in #21880
- @calad0i made their first contribution in #21959
- @KarSri7694 made their first contribution in #21963
- @MarcosAsh made their first contribution in #21961
- @orbin123 made their first contribution in #21935
- @ayulockedin made their first contribution in #21985
- @Shi-pra-19 made their first contribution in #21987
- @mahi21tha made their first contribution in #21989
- @PES2UG23CS205 made their first contribution in #21984
- @samudraneel05 made their first contribution in #22017
- @Junead04 made their first contribution in #21784
- @nexeora made their first contribution in #22051
- @bittoby made their first contribution in #22048
- @0xManan made their first contribution in #22035
- @sharpenteeth made their first contribution in #22079
- @maitry63 made their first contribution in #22068
- @Kh9705 made their first contribution in #22110
- @timon0305 made their first contribution in #22112
- @goyaladitya05 made their first contribution in #22131
- @Sikandar1310291 made their first contribution in #22014
- @haroon10725 made their first contribution in #22159
- @andersendsa made their first contribution in #22155
- @Rahuldrabit made their first contribution in #22146
- @jerryxyj made their first contribution in #22178
- @aaishwarymishra made their first contribution in #22173
- @Sujanian1304 made their first contribution in #22236
- @CityBoy-Claude made their first contribution in #22243
- @rstar327 made their first contribution in #22252
- @daehyun99 made their first contribution in #22289
- @kysolvik made their first contribution in #22290
- @ItzCobaltboy made their first contribution in #22158
- @cpuguy96 made their first contribution in #22284
- @0xRozier made their first contribution in #22218
- @tanguyguyot made their first contribution in #22327
- @AlanPonnachan made their first contribution in #21953
- @shriramThakare3 made their first contribution in #22306
- @Eruis2579 made their first contribution in #22350
- @satheeshbhukya made their first contribution in #22388
- @sam-shubham made their first contribution in #22265
- @Passavee-Losripat made their first contribution in #22404
- @ChiragSW made their first contribution in #22439
- @rishi-sangare made their first contribution in #22407
- @Caslyn made their first contribution in #22488
- @Abineshabee made their first contribution in #22469
- @dagecko made their first contribution in #22555
Full Changelog : v3.13.2...v3.14.0