Keras Release 2.9.0 RC0
Pre-release
Pre-release
Please see https://github.com/tensorflow/tensorflow/blob/r2.9/RELEASE.md for Keras release notes.
Major Features and Improvements
tf.keras
:- Added
tf.keras.applications.resnet_rs
models. This includes theResNetRS50
,ResNetRS101
,ResNetRS152
,ResNetRS200
,ResNetRS270
,ResNetRS350
andResNetRS420
model architectures. The ResNetRS models are based on the architecture described in Revisiting ResNets: Improved Training and Scaling Strategies - Added
tf.keras.optimizers.experimental.Optimizer
. The reworked optimizer gives more control over different phases of optimizer calls, and is easier to customize. We provide Adam, SGD, Adadelta, AdaGrad and RMSprop optimizers based ontf.keras.optimizers.experimental.Optimizer
. Generally the new optimizers work in the same way as the old ones, but support new constructor arguments. In the future, the symbolstf.keras.optimizers.Optimizer
/Adam
/etc will point to the new optimizers, and the previous generation of optimizers will be moved totf.keras.optimizers.legacy.Optimizer
/Adam
/etc. - Added L2 unit normalization layer
tf.keras.layers.UnitNormalization
. - Added
tf.keras.regularizers.OrthogonalRegularizer
, a new regularizer that encourages orthogonality between the rows (or columns) or a weight matrix. - Added
tf.keras.layers.RandomBrightness
layer for image preprocessing. - Added APIs for switching between interactive logging and absl logging. By default, Keras always writes the logs to stdout. However, this is not optimal in a non-interactive environment, where you don't have access to stdout, but can only view the logs. You can use
tf.keras.utils.disable_interactive_logging()
to write the logs to ABSL logging. You can also usetf.keras.utils.enable_interactive_logging()
to change it back to stdout, ortf.keras.utils.is_interactive_logging_enabled()
to check if interactive logging is enabled. - Changed default value for the
verbose
argument ofModel.evaluate()
andModel.predict()
to"auto"
, which defaults toverbose=1
for most cases and defaults toverbose=2
when used withParameterServerStrategy
or with interactive logging disabled. - Argument
jit_compile
inModel.compile()
now applies toModel.evaluate()
andModel.predict()
. Settingjit_compile=True
incompile()
compiles the model's training, evaluation, and inference steps to XLA. Note thatjit_compile=True
may not necessarily work for all models. - Added DTensor-related Keras APIs under
tf.keras.dtensor
namespace. The APIs are still classified as experimental. You are welcome to try it out. Please check the tutoral and guide on https://www.tensorflow.org/ for more details about DTensor.
- Added
What's Changed
- Update_OptimizerV2.py by @sachinprasadhs in #15819
- Use
assign_sub
when computingmoving_average_update
by @lgeiger in #15773 - Document the verbose parameter in EarlyStopping by @ThunderKey in #15817
- Fix LSTM and GRU cuDNN kernel failure for RaggedTensors. by @foxik in #15756
- A tiny problem in an AttributeError message in base_layer.py by @Aujkst in #15847
- Update training_generator_test.py by @sachinprasadhs in #15876
- Minor correction in RegNet docs by @AdityaKane2001 in #15901
- add scoring methods in Luong-style attention by @old-school-kid in #15867
- refactoring code with List Comprehension by @idiomaticrefactoring in #15924
- added clarifying statement to save_model example text by @soosung80 in #15930
- Update base_conv.py by @AdityaKane2001 in #15943
- Update global_clipnorm by @sachinprasadhs in #15938
- Update callbacks.py by @Cheril311 in #15977
- Applied correct reshaping to metric func sparse_top_k by @dfossl in #15997
- Keras saving/loading: Add a custom object saving test to verify the
keras.utils.register_keras_serializable
flows we are expecting users to follow work, and will continue to work with the new design and implementation coming in. by @copybara-service in #15992 - Metric accuracy bug fixes - Metrics Refactor proposal by @dfossl in #16010
- Make
classifier_activation
argument accessible for DenseNet and NASNet models by @adrhill in #16005 - Copy image utils from keras_preprocessing directly into core keras by @copybara-service in #15975
- Update
keras.callbacks.BackupAndRestore
docs by @lgeiger in #16018 - Updating the definition of an argument in the text_dataset_from_directory function by @shraddhazpy in #16012
- Remove deprecated TF1 Layer APIs
apply()
,get_updates_for()
,get_losses_for()
, and remove theinputs
argument in theadd_loss()
method. by @copybara-service in #16046 - Fixed minor typos by @hdubbs in #16071
- Fix typo in documentation by @futtetennista in #16082
- Issue #16090: Split input_shapes horizontally in utils.vis_utils.plot_model by @RicardFos in #16096
- Docker env setup related changes by @shraddhazpy in #16040
- Fixed EfficientNetV2 b parameter not increasing with each block. by @sebastian-sz in #16145
- Updated args of train_on_batch method by @jvishnuvardhan in #16147
- Binary accuracy bug fixes - Metric accuracy method refactor by @dfossl in #16083
- Fix the corner case for dtensor model layout map. by @copybara-service in #16170
- Fix typo in docstring for
DenseFeatures
by @gadagashwini in #16165 - Fix typo in Returns Section by @chunduriv in #16182
- Some tests misusing assertTrue for comparisons fix by @code-review-doctor in #16073
- Add .DS_Store to .gitignore for macOS users by @tsheaff in #16198
- Solve memory inefficiency in RNNs by @atmguille in #16174
- Update README.md by @ahmedopolis in #16259
- Fix documentation text being mistakenly rendered as code by @guberti in #16253
- Allow single input for merging layers Add, Average, Concatenate, Maximum, Minimum, Multiply by @foxik in #16230
- Mention image dimensions format in image_dataset_from_directory by @nrzimmermann in #16232
- fix thresholded_relu to support list datatype by @old-school-kid in #16277
- Implement all tf interpolation upscaling methods by @Mahrkeenerh in #16249
New Contributors
- @lgeiger made their first contribution in #15773
- @ThunderKey made their first contribution in #15817
- @Aujkst made their first contribution in #15847
- @idiomaticrefactoring made their first contribution in #15924
- @soosung80 made their first contribution in #15930
- @Cheril311 made their first contribution in #15977
- @dfossl made their first contribution in #15997
- @adrhill made their first contribution in #16005
- @shraddhazpy made their first contribution in #16012
- @hdubbs made their first contribution in #16071
- @futtetennista made their first contribution in #16082
- @RicardFos made their first contribution in #16096
- @gadagashwini made their first contribution in #16165
- @chunduriv made their first contribution in #16182
- @code-review-doctor made their first contribution in #16073
- @tsheaff made their first contribution in #16198
- @atmguille made their first contribution in #16174
- @ahmedopolis made their first contribution in #16259
- @guberti made their first contribution in #16253
- @nrzimmermann made their first contribution in #16232
- @Mahrkeenerh made their first contribution in #16249
Full Changelog: v2.8.0-rc0...v2.9.0-rc0