Weekly Project News

Archives

Weekly GitHub Report for Keras: April 06, 2026 - April 13, 2026 (19:26:54)

Weekly GitHub Report for Keras

Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.


Table of Contents

  • I. News
    • 1.1. Recent Version Releases
    • 1.2. Other Noteworthy Updates
  • II. Issues
    • 2.1. Top 5 Active Issues
    • 2.2. Top 5 Stale Issues
    • 2.3. Open Issues
    • 2.4. Closed Issues
    • 2.5. Issue Discussion Insights
  • III. Pull Requests
    • 3.1. Open Pull Requests
    • 3.2. Closed Pull Requests
    • 3.3. Pull Request Discussion Insights
  • IV. Contributors
    • 4.1. Contributors

I. News

1.1 Recent Version Releases:

The current version of this repository is v3.14.0

1.2 Version Information:

Released on April 2, 2026, this version introduces full Orbax checkpoint integration, advanced quantization methods like Activation-aware Weight Quantization and Asymmetric INT4 Sub-Channel Quantization, a new ScheduleFreeAdamW optimizer, and optional Gated Attention in key attention layers. Additionally, it significantly expands OpenVINO backend support with numerous NumPy, neural network, and control flow operations, enhances preprocessing layers, and includes various backend-specific improvements and bug fixes.

Click here to view the full release notes!

II. Issues

2.1 Top 5 Active Issues:

We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.

  1. [TYPE:PERFORMANCE] [BACKEND:TENSORFLOW] [Performance] Excessive tf.function retracing when training models saved unbuilt and compiled: This issue addresses the problem of excessive retracing of tf.function during training when models are saved in a compiled but unbuilt state, causing lazy variable creation upon loading that triggers repeated retracing warnings and performance degradation. It highlights the need for either enforcing model building before saving or providing clearer warnings to prevent unnecessary graph recompilation and user confusion.

    • The comments discuss inconsistent reproduction of the warning depending on session state and TensorFlow/Keras versions, confirm the underlying cause as lazy variable initialization, and debate potential solutions such as enforcing model building before saving or improving warning messages to mitigate performance issues.
    • Number of comments this week: 4
  2. [STAT:CONTRIBUTIONS WELCOME] [TYPE:FEATURE] [BACKEND:TORCH] [BACKEND:TENSORFLOW] [BACKEND:JAX] [PYTHON] [Feature Request] Add NEAT (Nash-Equilibrium Adaptive Training) optimizer to keras.optimizers: This issue proposes adding a new optimizer called NEAT (Nash-Equilibrium Adaptive Training) to the Keras library, which introduces a conflict-aware momentum correction to improve training stability by suppressing conflicting gradient components. The optimizer aims to handle gradient conflicts common in noisy, multi-task, or adversarial training scenarios by modifying the gradient direction within a single optimizer pass, while remaining fully compatible with existing Keras APIs and backends.

    • The comments include a request for publication details, which the author confirms with a link to a related science fair paper, followed by questions comparing NEAT to existing methods like PCGrad, inquiries about benchmark results on standard datasets, clarification on experimental setup claims, and a query about the novelty of the approach.
    • Number of comments this week: 3
  3. [TYPE:FEATURE] [Contribution Proposal] Adding a PaddlePaddle backend for Keras 3 – seeking community feedback: This issue is a proposal to add a PaddlePaddle backend to Keras 3, aiming to enable Keras users, especially in China, to run their models on PaddlePaddle with native support. The contributor offers to develop and maintain this backend independently, seeking community feedback on technical requirements, integration approach, and potential concerns before starting the implementation.

    • The comments show multiple community members expressing interest in contributing or supporting the effort, discussions about starting with a minimal viable implementation for BERT training and inference, and suggestions for collaboration and branching strategies; the original proposer also shared contact information for further communication with the Keras team.
    • Number of comments this week: 2
  4. [STAT:AWAITING RESPONSE FROM CONTRIBUTOR] [TYPE:BUG] IntegerLookup raises expected OOV validation error when num_oov_indices=0 and inputs contain unknown tokens: This issue discusses the behavior of the keras.layers.IntegerLookup layer when num_oov_indices is set to 0 and the input contains tokens not present in the vocabulary, resulting in an expected out-of-vocabulary validation error. The report clarifies that this behavior is intentional and consistent with the documented functionality, with symbolic input shapes still being correctly inferred despite the error in eager execution.

    • The comments confirm that the issue does not reproduce on the current master branch and that the layer behaves as expected by raising errors for out-of-vocabulary inputs in eager mode, while symbolic input shapes are handled intentionally; a user also shared a notebook demonstrating this behavior with the latest Keras version.
    • Number of comments this week: 2
  5. [STAT:AWAITING RESPONSE FROM CONTRIBUTOR] [TYPE:BUG] Conv1D returns invalid zero-length output shape and crashes on short inputs with large kernel/stride: This issue describes a problem in the keras.layers.Conv1D layer where short input sequences combined with large kernel sizes and strides result in invalid zero-length output shapes or crashes instead of producing a valid output or a clear error message. The user provides a reproducible example showing that symbolic inputs return an output shape with zero length, while eager inputs fail during bias or activation addition due to incompatible shapes.

    • The comment acknowledges the report and confirms that in Keras version 3.14.0, the issue has been addressed by detecting invalid configurations early and raising a clear error instead of returning invalid output shapes.
    • Number of comments this week: 1

2.2 Top 5 Stale Issues:

We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.

  1. [TYPE:BUG] ZeroDivisionError: integer modulo by zero | multi-device setup: This issue describes a ZeroDivisionError that occurs when using multiple GPUs with a batch size that is not divisible by the number of GPUs, causing problems in evenly splitting the batch across devices. The user highlights the challenge of handling leftover samples during evaluation or inference without dropping any data, suggesting the need for padding or another solution to properly allocate remaining data to available GPUs.

  2. [STAT:AWAITING KERAS-ENG] [TYPE:BUG] remat : The custom_gradient decorator currently supports keywords arguments only when eager execution is enabled.: This issue reports a problem with the remat function in Keras where the custom_gradient decorator only supports keyword arguments when eager execution is enabled, causing a ValueError during model training. The user provides a code example demonstrating the error when using remat with a DenseNet121 model and raises additional questions about the future of the keras.application API and compatibility of remat scope with data or model parallel setups.

  3. [TYPE:FEATURE] [STAT:AWAITING KERAS-ENG] Alias KerasTensor as Tensor: This issue proposes introducing an alias from KerasTensor to Tensor in the Keras library by modifying the import statement in the autogenerated stubs to improve API simplicity and usability. The goal is to align the naming convention with other core components like keras.Model and keras.Layer, making the API more consistent and easier to use.

  4. [STAT:AWAITING KERAS-ENG] [TYPE:BUG] evaluate() shows incorrect metric values in progress bar vs returned results: This issue reports that when using the model.evaluate() function in TensorFlow, the metric values displayed in the progress bar do not match the values returned by the method, with the progress bar showing incorrectly averaged metrics. The discrepancy arises because the progress bar appears to perform an additional averaging step on already averaged batch values, leading to confusion for users relying on these displayed metrics during evaluation.

  5. [TYPE:FEATURE] [STAT:AWAITING KERAS-ENG] [Feature Suggestion] Improving Built-In Visualization System With Layered-Style Architecture Generation: This issue proposes enhancing Keras's built-in visualization tool by introducing a new, highly customizable system for layered-style architecture generation that improves both the informativeness and aesthetics of model visualizations. The suggestion includes integrating key features from an external repository maintained by the author while keeping dependencies isolated to avoid adding bloat to the core Keras package.

2.3 Open Issues

This section lists, groups, and then summarizes issues that were created within the last week in the repository.

Issues Opened This Week: 0

Summarized Issues:

As of our latest update, there are no open issues for the project this week.

2.4 Closed Issues

This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.

Issues Closed This Week: 12

Summarized Issues:

  • Model weight compatibility and security: There are issues with loading model weights saved in the older .h5 format in Keras 3, which worked in Keras 2.15 but now fail to load or function correctly, prompting ongoing investigation and requests for reproducible code. Additionally, Keras 3's safe_mode lacks sufficient security for loading binary weight files, leading to proposals for a Hardware-Isolated Weight Loading utility to prevent arbitrary code execution via SHA-256 hash verification and metadata sanitization.
  • issues/21676, issues/22468
  • Symbolic tensor shape inference problems: Several Keras operations such as GroupQueryAttention, diagflat, and diagonal exhibit inconsistent or incorrect output shape inference when used with symbolic keras.Input tensors, especially involving batch dimensions or negative parameters, causing mismatches compared to eager tensor behavior and loss of static shape information. These shape inference issues lead to errors or unexpected behavior during model construction or execution in symbolic mode.
  • issues/22519, issues/22526, issues/22527
  • Training state restoration and determinism: Properly resuming training after interruption requires correctly restoring optimizer state, learning rate schedules, and initial epoch settings to maintain training progress. Furthermore, there is a proposal to add a high-level deterministic training mode in Keras to enforce reproducible results by standardizing backend behavior and random seeds, which would aid debugging and production reliability.
  • issues/22010, issues/22621
  • Backend and API consistency bugs: Setting the backend to TensorFlow via keras.config.set_backend("tensorflow") causes keras.layers.Dense instances to no longer be recognized as keras.layers.Layer instances, breaking fundamental type checks and core APIs like Sequential. Additionally, a bug in Keras 3.14.0 causes metrics assigned to specific outputs in multi-output models to receive tensors from incorrect output heads, resulting in shape mismatches and training errors.
  • issues/22619, issues/22625
  • Security and file path validation in callbacks: Keras callbacks currently accept user-provided file paths without normalization or validation, allowing absolute and directory traversal paths that can cause files to be written outside intended directories without warnings or safeguards, posing potential security risks.
  • issues/22570
  • JAX tracing error in attention kernel: A jax.errors.ConcretizationTypeError occurs in the Splash attention kernel during model.generate calls due to a JAX tracing problem where an abstract tracer value is received instead of a concrete value, causing fallback to native JAX dot_product_attention and generating excessive traceback logs.
  • issues/21916
  • Feature implementation tracking: The implementation of the extract_patches image operation is being tracked for the Keras tensorflow and torch backends.
  • issues/22637

2.5 Issue Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.


III. Pull Requests

3.1 Open Pull Requests

This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Opened This Week: 11

Key Open Pull Requests

1. Torch performance improvement: This pull request introduces a comprehensive set of performance optimizations and a precompiled forward execution plan across the Torch backend, layers, models, training, and graph execution components to significantly reduce per-call overhead on hot paths while maintaining compatibility with advanced features and improving inference and training efficiency.

  • URL: pull/22660
  • Associated Commits: 9fefa, 964aa, 2de9a, 542db, f29a9

2. Improve legacy H5 format test coverage: This pull request improves the test coverage of the legacy H5 format in the Keras project by adding model factories for Conv2D, RNN, Bidirectional, and Embedding layers and expanding the LegacyH5WeightsTest, LegacyH5WholeModelTest, and LegacyH5BackwardsCompatTest to include these new models.

  • URL: pull/22665
  • Associated Commits: c1865, 375cf

3. [OpenVINO] Implement greedy path for ctc_decode: This pull request implements the greedy decoding path for the CTC decode operation in OpenVINO, with plans to add the beam search decoding method in a future update after the necessary unique operation is available.

  • URL: pull/22667
  • Associated Commits: 52e3e, cb03e

Other Open Pull Requests

  • OpenVINO backend operation support: Multiple pull requests add new operation support to the Keras 3 OpenVINO backend, including gaussian_blur and unique operations. These additions also include activating related tests and addressing issues in the OpenVINO toolkit to ensure proper functionality and alignment with the main Keras repository.
    • pull/22668, pull/22669
  • Test improvements and fixes: Several pull requests improve test execution and correctness by parallelizing CPU tests to reduce runtime and fixing argument order in test assertion functions to align with expected parameters. These changes enhance test robustness and efficiency across the codebase.
    • pull/22658, pull/22664
  • Layer bug fixes and validation: Fixes were made to Keras layers including SeparableConv1D and SeparableConv2D to prevent invalid output shapes and memory issues by adding output shape validation during build. Additionally, the GroupNormalization layer was fixed to prevent NaN outputs under mixed precision by adjusting the float32 upcast timing and adding regression tests.
    • pull/22662, pull/22666
  • Compatibility and input handling fixes: A pull request fixed the TextVectorization layer to correctly handle custom standardize callables on non-TensorFlow backends by converting inputs to Python strings before processing. This ensures compatibility with JAX, PyTorch, and the existing TensorFlow pipeline.
    • pull/22661
  • OpenVINO RNN test failures and CPU plugin compliance: One pull request addresses multiple RNN-related test failures in the OpenVINO integration by casting inputs to correct data types, enabling dynamic batch dimensions, and converting symbolic weights to numpy constants. It also fixes a bug with non-C-contiguous arrays producing incorrect constant types, improving CPU plugin compatibility.
    • pull/22670

3.2 Closed Pull Requests

This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. Other pull requests are grouped based on similar characteristics for easier analysis. Up to 25 pull requests are displayed in this section, while any remaining pull requests beyond this limit are omitted for brevity.

Pull Requests Closed This Week: 29

Key Closed Pull Requests

1. [OpenVINO] Implement resize operation, add tests for dynamic crop/pad: This pull request implements the resize operation for the OpenVINO backend using ov_opset.interpolate with support for nearest, bilinear, and bicubic modes while excluding unsupported lanczos modes, and adds comprehensive tests including a separate regression test for dynamic crop and pad functionality.

  • URL: pull/22452
  • Associated Commits: 18651, 59c72, 6d7f0, 16909, 6ef99, 6624a, 5878e, 9b13d, 83c8c
  • Associated Commits: 18651, 59c72, 6d7f0, 16909, 6ef99, 6624a, 5878e, 9b13d, 83c8c

2. [Fix] Mixed Precision (float16) numerical instability in GroupNormalization with small epsilon: This pull request addresses numerical instability issues caused by float16 overflow in GroupNormalization with small epsilon by disabling automatic mixed precision casting for inputs and weights, ensuring computations remain in float32 to prevent NaN propagation, and includes regression tests to verify the fix.

  • URL: pull/22589
  • Associated Commits: 362c9, d46a8, b542b, 3cba1, 43146, ddb80, f3ed8
  • Associated Commits: 362c9, d46a8, b542b, 3cba1, 43146, ddb80, f3ed8

3. Add unique op: This pull request adds a unique operation by implementing keras.ops.numpy.unique with support for TensorFlow, JAX, PyTorch, and NumPy backends, excluding OpenVINO, to provide functionality similar to the unique functions in JAX and PyTorch.

  • URL: pull/22546
  • Associated Commits: 6de20, b04fe, 50f44, 75b1f, b9ddb, d2674
  • Associated Commits: 6de20, b04fe, 50f44, 75b1f, b9ddb, d2674

Other Closed Pull Requests

  • OpenVINO backend activation functions and test updates: Multiple pull requests implement the GLU and sparsemax activation functions for the OpenVINO backend, removing them from the exclusion test list and passing various correctness and dtype tests. These changes address related issues in the OpenVINO toolkit and improve backend functionality and test coverage.
    • pull/22412, pull/22645, pull/22654
  • OpenVINO backend dynamic shape and tensor handling fixes: Pull requests fix handling of dynamic dimensions in OpenVINO operations by returning OpenVINOKerasTensor scalars instead of Python tuples, enabling valid arithmetic on dynamic dimensions and updating reshape methods. Additionally, a crash in OpenVINOKerasTensor slicing with dynamic bounds is fixed by properly handling dynamic slice construction.
    • pull/22646, pull/22659
  • OpenVINO backend scale_and_translate and map_coordinates implementation and revert: One pull request implements the scale_and_translate and map_coordinates functions for the OpenVINO backend enabling corresponding unit tests and addressing an issue, while a subsequent pull request reverts these changes to investigate CI failures.
    • pull/22635, pull/22648
  • OpenVINO backend bug fixes and test stability improvements: Fixes include preserving mask tensors as extra outputs to address mask propagation during inference and seeding random number generation to fix non-deterministic behavior of random operations. Another pull request relaxes numerical tolerance in OpenVINO FFT tests to improve test stability without compromising accuracy.
    • pull/22649, pull/22647
  • ModelParallel dataset sharding and validation improvements: A pull request replaces modulo-based round-robin shard assignment with integer division to group contiguous process ranks within replica groups, adds validation for divisibility of processes by model replicas, and includes integration tests verifying correct shard grouping. A follow-up fixes an incorrect check in ModelParallel and adds unit tests enabling more GPU tests.
    • pull/22179, pull/22655
  • Security and CI workflow enhancements: One pull request implements strict branch name validation with regex to prevent path traversal or injection, restricts editable paths, and ensures checkout uses immutable commit SHAs to safeguard CI integrity. Another fixes and updates the automated pull request workflow and removes unnecessary setup comments.
    • pull/22644, pull/22652
  • Testing infrastructure and workflow updates: Updates include switching to self-hosted runners for all CPU tests, consolidating multi-CPU tests with JAX tests, improving consistency across test files, and modifying the test workflow to directly trigger GPU and TPU tests via specific YAML files instead of relying on the unlabel action.
    • pull/22653, pull/22554
  • Checkpointing and dataset iterator state improvements: A pull request enables deterministic mid-epoch checkpointing and resuming for Grain datasets by saving and restoring iterator state via BackupAndRestore, and fixes the num_batches property to correctly report total batches for finite MapDatasets to improve progress bar accuracy.
    • pull/22490
  • TensorFlow GPU and JAX export test fixes: Fixes re-enable previously fixed TensorFlow GPU export tests and update JaxLayer tests to use native_serialization_platforms, enabling JAX GPU tests for export functionality.
    • pull/22643
  • Callable parameter handling for constraints and regularizers: A pull request addresses rejection of plain callables by wrapping them in adapter classes to pass isinstance checks in Variable setters, updating setters defensively, and adding proper error handling and tests.
    • pull/22235
  • Output structure regression fix in model predictions: A regression fix reintroduces output name resolution and flattening logic to correctly pair predictions and labels when y_pred and y_true have different structures, enhancing support for deeply nested output names and improving test robustness.
    • pull/22663
  • Extract_patches functionality implementation across backends: A pull request aims to implement extract_patches functionality for OpenVINO, PyTorch, and TensorFlow backends, including foundational code and tests.
    • pull/22636
  • Batch dimension preservation in GroupQueryAttention outputs: Fixes an issue where GroupQueryAttention drops the batch dimension when return_attention_scores=True on keras.Input tensors by overriding compute_output_spec to preserve the batch dimension and adding tests for symbolic behavior.
    • pull/22642
  • Git and repository operation fixes: Fixes include ensuring git is installed before checkout and filter actions in CPU runners and silencing the git security error "fatal: detected dubious ownership in repository" for smoother operations.
    • pull/22656, pull/22657

3.3 Pull Request Discussion Insights

This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.

Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.


IV. Contributors

4.1 Contributors

Active Contributors:

We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.

If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.

Contributor Commits Pull Requests Issues Comments
hertschuh 53 38 0 148
goyaladitya05 103 30 1 31
ChiragSW 67 14 0 24
pctablet505 89 4 1 1
divyashreepathihalli 43 23 0 27
MarcosAsh 31 9 0 11
buildwithsuhana 42 2 0 0
daehyun99 23 6 2 12
rstar327 24 4 0 2
andersendsa 23 3 0 1

Don't miss what's next. Subscribe to Weekly Project News:
Powered by Buttondown, the easiest way to start and grow your newsletter.