Skip to content

Releases: keras-team/keras

Keras 3.0.3 release

20 Jan 01:45
096b848
Compare
Choose a tag to compare

This is a minor Keras release.

What's Changed

  • Add built-in LoRA (low-rank adaptation) API to all relevant layers (Dense, EinsumDense, Embedding).
  • Add SwapEMAWeights callback to make it easier to evaluate model metrics using EMA weights during training.
  • All DataAdapters now create a native iterator for each backend, improving performance.
  • Add built-in prefetching for JAX, improving performance.
  • The bfloat16 dtype is now allowed in the global set_dtype configuration utility.
  • Bug fixes and performance improvements.

New Contributors

Full Changelog: v3.0.2...v3.0.3

Keras 3.0.2

21 Dec 19:22
fe2f54a
Compare
Choose a tag to compare

Breaking changes

There are no known breaking changes in this release compared to 3.0.1.

API changes

  • Add keras.random.binomial and keras.random.beta RNG functions.
  • Add masking support to BatchNormalization.
  • Add keras.losses.CTC (loss function for sequence-to-sequence tasks) as well as the lower-level operation keras.ops.ctc_loss.
  • Add ops.random.alpha_dropout and layers.AlphaDropout.
  • Add gradient accumulation support for all backends, and enable optimizer EMA for JAX and torch

Full Changelog: v3.0.1...v3.0.2

Keras 3.0.1

06 Dec 21:12
Compare
Choose a tag to compare

This is a minor release focused on bug fixes and performance improvements.

What's Changed

  • Bug fixes and performance improvements.
  • Add stop_evaluating and stop_predicting model attributes for callbacks, similar to stop_training.
  • Add keras.device() scope for managing device placement in a multi-backend way.
  • Support dict items in PyDataset.
  • Add hard_swish activation and op.
  • Fix cuDNN LSTM performance on TensorFlow backend.
  • Add a force_download arg to get_file to force cache invalidation.

Full Changelog: v3.0.0...v3.0.1

Keras 3.0.0

28 Nov 01:07
9c675a9
Compare
Choose a tag to compare

Major updates

See the release announcement for a detailed list of major changes. Main highlights compared to Keras 2 are:

  • Keras can now be run on top of JAX, PyTorch, TensorFlow, and even NumPy (note that the NumPy backend is inference-only).
  • New low-level keras.ops API for building cross-framework components.
  • New large-scale model distribution keras.distribution based on JAX.
  • New stateless API for layers, models, optimizers, and metrics.

Breaking changes

See this thread for a complete list of breaking changes, as well as the Keras 3 migration guide.

Keras Release 2.15.0

12 Dec 17:31
601488f
Compare
Choose a tag to compare

What's Changed

  • Typofixes for StringLookup documentation by @cw118 in #18333
  • Fix ModelCheckpoint trained-on batch counting when using steps_per_execution>1 by @jasnyj in #17632
  • Fix legacy optimizer handling in compile_from_config(). by @nkovela1 in #18492
  • Remove options arg from ModelCheckpoint callback for Keras V3 saving, streamline ModelCheckpoint saving flow. Parameterize associated tests. by @nkovela1 in #18545
  • Use TENSORFLOW_VERSION when available during pip_build script by @sampathweb in #18739

New Contributors

Full Changelog: v2.14.0...v2.15.0

Keras Release 2.14.0

12 Sep 16:19
68f9af4
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.13.1...v2.14.0

Keras Release 2.14.0 RC0

03 Aug 20:57
bb9d7ff
Compare
Choose a tag to compare
Pre-release

What's Changed

New Contributors

Full Changelog: v2.13.1...v2.14.0-rc0

Keras Release 2.13.1

27 Jun 23:42
b3ffea6
Compare
Choose a tag to compare

What's Changed

  • Fix timeseries_dataset_from_array counts when sequence_stride > 1 by @basjacobs93 in #17396
  • Fix doc for MultiHeadAttention's output_shape arg by @tsdeng in #17432
  • Added a link to the TextVectorization API Reference Page. by @Neeshamraghav012 in #17540
  • Fix ConvNeXt classifier activation bug by @Frightera in #17544
  • Activations clean up by @joesho112358 in #17545
  • Perform all ops in apply_gradient in a given tf.name_scope. by @foxik in #17550
  • Bugfix/normalization invert by @jerabaul29 in #17501
  • OptimizerV2: Allow deepcopy by @jschueller in #17463
  • keras.models.clone_model creates different weight names for RNN layers by @mergian in #17465
  • Fix spelling error in Initializer warning by @edknv in #17568
  • LayerScale fix to support pretrained ConvNeXt models with mixed precision by @andreped in #17547
  • Softmax fix in Mixed Precision by @dsr-lab in #17571
  • Less restrictive ROCm+GRU/LSTM fallback logic by @ekuznetsov139 in #17587
  • Update security section. by @sachinprasadhs in #17522
  • Fix serialization error with EfficientNet by @RocketDelivery in #17498
  • grammar corrections by @egurnick in #17595
  • Update documentation to keras reuters dataset by @hxy9243 in #17635
  • Add Lion optimizer by @drauh in #17605
  • Correct the docstring of Head func in convnext.py by @Frightera in #17667
  • keras.layers.Bidirectional is missing argument "states", which is defined for keras.layers.RNN by @mergian in #17469
  • fix a small bug in tf.keras.layer.Layer.compute_output_signature by @yamanoko in #17636
  • Optimize mixed-precision finite check for sparse tensors. by @nluehr in #17638
  • Typo Lion docstring by @drauh in #17726
  • Raise ValueError if reducing axis dimension is 0 by @old-school-kid in #16755
  • Add CategoricalFocalCrossentropy to Losses API by @Frightera in #17651
  • Unifying interpolation selection by @jpodivin in #17742
  • Add a missing space by @sudoLife in #17744
  • [keras/initializers/initializers_v1.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17785
  • [keras/layers/convolutional/conv3d_transpose.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17797
  • [keras/engine/training.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17780
  • [keras/feature_column/dense_features.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17783
  • [keras/datasets/imdb.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17771
  • [keras/backend.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17769
  • [keras/engine/base_layer_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17774
  • [keras/layers/activation/leaky_relu.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17786
  • [keras/engine/training_v1.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17781
  • [keras/layers/activation/relu.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17787
  • [keras/layers/convolutional/conv2d_transpose.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17795
  • [keras/layers/convolutional/conv3d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17796
  • [keras/layers/activation/softmax.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17788
  • [keras/layers/convolutional/depthwise_conv2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17799
  • [keras/layers/convolutional/separable_conv2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17800
  • [keras/layers/locally_connected/locally_connected2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17803
  • [keras/layers/locally_connected/locally_connected1d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17802
  • Fix performance issue with sample weights in model.fit() by @nershman in #17357
  • [keras/datasets/reuters.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17772
  • [keras/applications/mobilenet.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17763
  • [keras/applications/inception_v3.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17762
  • [keras/engine/input_layer.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17779
  • [keras/engine/data_adapter.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17777
  • [keras/applications/imagenet_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17760
  • [keras/layers/attention/additive_attention.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17789
  • [keras/engine/base_layer.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17773
  • [keras/layers/kernelized.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17801
  • [keras/engine/functional.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17778
  • [keras/layers/attention/multi_head_attention.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17791
  • Minor improvements and code refactoring in backend.py by @Frightera in #17746
  • Update indentation level - layers/attention by @Frightera in #17945
  • Update indentation level - layers/activation by @Frightera in #17943
  • [keras/layers/preprocessing/image_preprocessing_test.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17820
  • [keras/layers/preprocessing/text_vectorization.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17825
  • [keras/optimizers/ftrl.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17864
  • [keras/optimizers/adam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17861
  • [keras/optimizers/adamax.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17862
  • [keras/optimizers/legacy/adam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17867
  • [keras/optimizers/legacy/ftrl.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17868
  • [keras/utils/dataset_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17895
  • [keras/utils/feature_space.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17896
  • [keras/optimizers/nadam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17875
  • [keras/saving/serialization_lib.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17889
  • [keras/metrics/base_metric.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17850
  • Update indentation level - utils/image_dataset by @Frightera in #18005
  • [keras/optimizers/schedules] Standardise docstring usage of "Default to" by @SamuelMarks in #17976
  • [keras/layers/reshaping] Standardise docstring usage of "Default to" by @SamuelMarks in #17969
  • [keras/optimizers/legacy] Standardise docstring usage of "Default to" by @SamuelMarks in https://github.com/kera...
Read more

Keras Release 2.13.1 RC1

27 Jun 22:30
b3ffea6
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Cherrypick Sequential serialization bug fix for r2.13 by @nkovela1 in #18258

New Contributors

Full Changelog: v2.13.1-rc0...v2.13.1-rc1

Keras Release 2.13.1 RC0

03 May 16:23
87db506
Compare
Choose a tag to compare
Pre-release

What's Changed

  • Fix timeseries_dataset_from_array counts when sequence_stride > 1 by @basjacobs93 in #17396
  • Fix doc for MultiHeadAttention's output_shape arg by @tsdeng in #17432
  • Added a link to the TextVectorization API Reference Page. by @Neeshamraghav012 in #17540
  • Fix ConvNeXt classifier activation bug by @Frightera in #17544
  • Activations clean up by @joesho112358 in #17545
  • Perform all ops in apply_gradient in a given tf.name_scope. by @foxik in #17550
  • Bugfix/normalization invert by @jerabaul29 in #17501
  • OptimizerV2: Allow deepcopy by @jschueller in #17463
  • keras.models.clone_model creates different weight names for RNN layers by @mergian in #17465
  • Fix spelling error in Initializer warning by @edknv in #17568
  • LayerScale fix to support pretrained ConvNeXt models with mixed precision by @andreped in #17547
  • Softmax fix in Mixed Precision by @dsr-lab in #17571
  • Less restrictive ROCm+GRU/LSTM fallback logic by @ekuznetsov139 in #17587
  • Update security section. by @sachinprasadhs in #17522
  • Fix serialization error with EfficientNet by @RocketDelivery in #17498
  • grammar corrections by @egurnick in #17595
  • Update documentation to keras reuters dataset by @hxy9243 in #17635
  • Add Lion optimizer by @drauh in #17605
  • Correct the docstring of Head func in convnext.py by @Frightera in #17667
  • keras.layers.Bidirectional is missing argument "states", which is defined for keras.layers.RNN by @mergian in #17469
  • fix a small bug in tf.keras.layer.Layer.compute_output_signature by @yamanoko in #17636
  • Optimize mixed-precision finite check for sparse tensors. by @nluehr in #17638
  • Typo Lion docstring by @drauh in #17726
  • Raise ValueError if reducing axis dimension is 0 by @old-school-kid in #16755
  • Add CategoricalFocalCrossentropy to Losses API by @Frightera in #17651
  • Unifying interpolation selection by @jpodivin in #17742
  • Add a missing space by @sudoLife in #17744
  • [keras/initializers/initializers_v1.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17785
  • [keras/layers/convolutional/conv3d_transpose.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17797
  • [keras/engine/training.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17780
  • [keras/feature_column/dense_features.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17783
  • [keras/datasets/imdb.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17771
  • [keras/backend.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17769
  • [keras/engine/base_layer_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17774
  • [keras/layers/activation/leaky_relu.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17786
  • [keras/engine/training_v1.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17781
  • [keras/layers/activation/relu.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17787
  • [keras/layers/convolutional/conv2d_transpose.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17795
  • [keras/layers/convolutional/conv3d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17796
  • [keras/layers/activation/softmax.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17788
  • [keras/layers/convolutional/depthwise_conv2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17799
  • [keras/layers/convolutional/separable_conv2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17800
  • [keras/layers/locally_connected/locally_connected2d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17803
  • [keras/layers/locally_connected/locally_connected1d.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17802
  • Fix performance issue with sample weights in model.fit() by @nershman in #17357
  • [keras/datasets/reuters.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17772
  • [keras/applications/mobilenet.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17763
  • [keras/applications/inception_v3.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17762
  • [keras/engine/input_layer.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17779
  • [keras/engine/data_adapter.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17777
  • [keras/applications/imagenet_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17760
  • [keras/layers/attention/additive_attention.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17789
  • [keras/engine/base_layer.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17773
  • [keras/layers/kernelized.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17801
  • [keras/engine/functional.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17778
  • [keras/layers/attention/multi_head_attention.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17791
  • Minor improvements and code refactoring in backend.py by @Frightera in #17746
  • Update indentation level - layers/attention by @Frightera in #17945
  • Update indentation level - layers/activation by @Frightera in #17943
  • [keras/layers/preprocessing/image_preprocessing_test.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17820
  • [keras/layers/preprocessing/text_vectorization.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17825
  • [keras/optimizers/ftrl.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17864
  • [keras/optimizers/adam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17861
  • [keras/optimizers/adamax.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17862
  • [keras/optimizers/legacy/adam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17867
  • [keras/optimizers/legacy/ftrl.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17868
  • [keras/utils/dataset_utils.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17895
  • [keras/utils/feature_space.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17896
  • [keras/optimizers/nadam.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17875
  • [keras/saving/serialization_lib.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17889
  • [keras/metrics/base_metric.py] Standardise docstring usage of "Default to" by @SamuelMarks in #17850
  • Update indentation level - utils/image_dataset by @Frightera in #18005
  • [keras/optimizers/schedules] Standardise docstring usage of "Default to" by @SamuelMarks in #17976
  • [keras/layers/reshaping] Standardise docstring usage of "Default to" by @SamuelMarks in #17969
  • [keras/optimizers/legacy] Standardise docstring usage of "Default to" by @SamuelMarks in https://github.com/kera...
Read more