Weekly Project News

Archives
Subscribe

Weekly GitHub Report for Keras: September 07, 2026 - September 14, 2026 (20:08:34)

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 with sharding and step recovery, advanced quantization methods like AWQ and Asymmetric INT4, 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:BUG] [BACKEND:TORCH] torch.vmap fails on nightly but runs on older version: This issue reports a regression in the torch.vmap functionality when used with the Keras backend on a nightly version, where a previously working vectorized convolution operation now fails due to PyTorch not supporting certain memory format queries inside vmap. The problem stems from a recent change that applies a channels-last memory format optimization in convolution operations, which is incompatible with vmap's current limitations, causing runtime errors when checking tensor contiguity with non-default memory formats.

    • The comments confirm the regression is due to a backend change in PyTorch's convolution ops related to memory format handling inside vmap, propose a fix to skip the problematic memory format check during batched operations, and note that a pull request has been opened to address the issue, with positive feedback from users.
    • Number of comments this week: 3
  2. [LAYERS] [BACKEND:OPENVINO] leaky_relu drops the negative slope for integer input on the numpy backend: This issue describes a problem where the keras.ops.leaky_relu function incorrectly drops the negative slope for integer inputs when using the numpy backend, causing it to behave like a standard ReLU instead of a leaky ReLU. Additionally, there is a dtype inconsistency where LeakyRelu.compute_output_spec returns the input dtype, which is integer, even though backends like JAX and TensorFlow return a float dtype for the output.

    • The comment acknowledges the issue, confirms it is reproducible, and explains that the numpy backend casts the negative slope to the input dtype, resulting in a zero slope for integer inputs; it also notes the dtype inconsistency between the output spec and actual outputs in other backends.
    • Number of comments this week: 1
  3. [TYPE:SUPPORT] [TYPE:FEATURE] [PYTHON] [Refactor] Introduce internal Auto*Operation base classes across keras.ops to reduce boilerplate: This issue proposes refactoring around 80 operations in the keras.ops module by introducing three internal base classes to reduce boilerplate code and standardize symbolic shape and dtype inference, particularly for elementwise, binary broadcast, and reduction operations. The goal is to improve maintainability and consistency in handling sparse and ragged tensors while eliminating over 700 lines of duplicated code.

    • The comment acknowledges the validity of the proposal, adds a reproduction notebook covering key behaviors such as elementwise operations and dtype inference, and assigns the issue to the original poster, expressing appreciation for the contribution.
    • Number of comments this week: 1

Since there were fewer than 5 open issues, all of the open issues have been listed above.

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.

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

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: 8

Summarized Issues:

  • Functionality Bugs in Backend Operations: Several issues report bugs in backend operations affecting function behavior and output consistency. These include torch.vmap failing due to unsupported memory format checks in 3D convolutions, keras.ops.leaky_relu incorrectly casting negative_slope to integer on the numpy backend, and keras.ops.binary_crossentropy in the Torch backend inconsistently squeezing dimensions causing shape mismatches.
  • issues/23587, issues/23607, issues/23621
  • Checkpointing and Error Handling: One issue highlights that the OrbaxCheckpoint callback silently discards exceptions during asynchronous checkpoint finalization, which can cause unnoticed failures and stale model weights without warnings or errors. This undermines reliability in model saving processes.
  • issues/23609
  • Backend-Specific Execution Failures: The OpenVINO backend has defects where while_loop fails due to undeclared parameters when closing over outer tensors, and ops.repeat errors on scalar tensor inputs for repeats. These issues cause failures in encoder-decoder text generation models under dynamic dimensions.
  • issues/23612
  • Contribution Process and Documentation Issues: There are issues related to contribution policies and documentation, including a new pull request policy requiring linked issues and limiting active PRs to improve quality, and a broken link to the AI Assisted Contribution Policy in the PR template that prevents access to guidelines.
  • issues/23601, issues/23617
  • Codebase Refactoring and Standardization: A proposal suggests refactoring around 80 operations by introducing internal base classes to reduce boilerplate and standardize execution and shape/dtype inference, improving maintainability and consistent handling of ragged and sparse tensors.
  • issues/23625

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: 17

Summarized Issues:

  • Model input and output shape mismatches: Several issues highlight problems with shape compatibility in Keras functional models, where mismatches between model outputs and training targets either allow incorrect training or cause errors at inconsistent stages. Additionally, dictionary inputs in Functional models can incorrectly associate unrelated keys, leading to misleading shape errors, which can be avoided by using ordered lists of named inputs.
  • issues/20719, issues/23258
  • Backend operation bugs and inaccuracies: There are bugs in specific Keras ops such as nextafter returning positive infinity incorrectly and erfinv returning infinity near boundary values, indicating errors in handling edge cases. Proposals to add new ops like cov, copysign, and float_power aim to provide consistent, backend-agnostic implementations for common mathematical operations currently missing or inconsistently implemented.
  • issues/23132, issues/23133, issues/23493, issues/23497, issues/23499
  • Performance inefficiencies and redundant computations: Multiple issues address inefficiencies such as redundant dtype lookups, double copying of tensors in convolution operations, unnecessary pytree traversals, redundant tensor conversions in training steps, and duplicate name scope openings in layer calls. These were resolved or proposed to be fixed by caching, short-circuiting, merging scopes, and introducing fast paths to reduce overhead and improve runtime efficiency.
  • issues/23272, issues/23279, issues/23281, issues/23282, issues/23290, issues/23294
  • API updates and feature additions: Updates include changing all backend.is_tensor calls to backend.ops.is_tensor for consistency, adding support for label_smoothing in SparseCategoricalCrossentropy to enable smoothing on integer targets, and fixing the missing export of the keras.ops.random submodule in the public API, which currently causes attribute errors despite internal availability.
  • issues/23485, issues/23487, issues/23575
  • Project roadmap and milestones: The development roadmap outlines key focus areas such as pluggable backends, performance optimization, distributed training, and deployment guides, along with recently shipped milestones to guide contributors and users on the ongoing evolution of Keras.
  • issues/19519

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: 18

Key Open Pull Requests

1. Handle native backend tensors in data adapters: This pull request improves the data adapters in Keras to natively handle backend tensors from pluggable backends like MLX by adding a fallback check using ops.is_tensor(x) and enabling zero-copy numpy views via the buffer protocol or safe conversions, thereby preventing crashes during model training and evaluation when encountering such tensors.

  • URL: pull/23596
  • Associated Commits: 0fc13, ead72, 63f8e, 02e24, a8197

2. Fix tf.keras.ops.numpy.logaddexp and logaddexp2 gradient at equal inputs: This pull request fixes a gradient computation bug in tf.keras.ops.numpy.logaddexp and logaddexp2 where equal inputs caused incorrect gradients by reformulating the numerical stabilization using a stopped-gradient maximum to ensure correct and stable reverse-mode automatic differentiation, including handling of non-finite inputs, and adds comprehensive tests across multiple backends to validate the fix.

  • URL: pull/23616
  • Associated Commits: a2a69, b1bdb, 65063, 94234, 74ca7

3. Openvino while loop capture and scalar repeat: This pull request fixes two OpenVINO backend defects related to handling captured outer tensors in while_loop bodies and correctly processing scalar tensor repeats in numpy.repeat, enabling encoder-decoder generation with dynamic dimensions to run properly and unblocking KerasHub seq2seq generation on OpenVINO.

  • URL: pull/23613
  • Associated Commits: fb68f, f405f, b90b3

Other Open Pull Requests

  • Gradient and Autodiff Fixes: Multiple pull requests address issues in gradient computation and autodiff behavior. One fixes the incorrect gradient of the ldexp function at zero by removing an unnecessary condition and adding tests, while another promotes integer inputs in leaky_relu to float to prevent parameter truncation and align behavior with other backends.
    [pull/23615, pull/23608]
  • Distributed and Backend Synchronization Improvements: Several pull requests improve distributed training and backend synchronization. One refactors TensorFlow distributed gradient accumulation to avoid nested control-flow errors, another generalizes callback state synchronization for multiple backends beyond JAX, and a third adds a warning for checkpoint finalization failures to prevent silent errors.
    [pull/23592, pull/23620, pull/23610]
  • Testing and Validation Enhancements: Multiple pull requests enhance validation and testing robustness. These include adding validation for AffineTransform output shapes, BatchNormalization momentum range, and Adagrad optimizer parameters, as well as updating assertion functions to enforce shape consistency and adding import tests for pluggable backends.
    [pull/23619, pull/23623, pull/23624, pull/23605, pull/23597]
  • Operation Refactoring and Standardization: One pull request introduces internal base classes to automate backend function dispatch and output specification, refactoring 80 operations to reduce boilerplate while maintaining backward compatibility and adding unit tests.
    [pull/23626]
  • Error Handling and User Feedback Improvements: A pull request improves error handling in loss computation by raising clear errors when labels are missing and preventing crashes during error re-wrapping, providing more informative feedback to users.
    [pull/23622]
  • Bug Fixes in Memory Format and Documentation: One pull request fixes a runtime error caused by querying is_contiguous with channels_last format inside torch.vmap by skipping unsupported checks, and another fixes a broken link in the AI assisted contribution policy section of the PR template.
    [pull/23588, pull/23618]
  • Einsum Layer Refactor for Quantization: A pull request refactors the EinsumDense layer to unify quantization strategies under a single protocol, enabling seamless support for multiple quantization types and improving LoRA application while maintaining checkpoint compatibility.
    [pull/23606]

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: 48

Key Closed Pull Requests

1. perf(layers): open the layer name scope once per call, not twice: This pull request optimizes the Layer.__call__ method by merging two separate openings of the layer name scope into a single scope per call, thereby reducing redundant name-scope allocations and improving performance without changing behavior or output correctness.

  • URL: pull/23301
  • Associated Commits: 3ef1e, ba3d8, 5aa16, 7da08, c1f28, a3742, 40ebe, d4dec, 1af9b, e8ebb, b856a, 35fcd, 6b59e, c9426, 41246, a1025, 589fb, 094e2, ff146, f47af, 57692, af020, 47576, 56b78

2. perf(layers): single-tensor structure fast paths in Layer.call mask pipeline: This pull request introduces optimized fast paths in the Layer.__call__ mask pipeline for calls involving a single leaf tensor by reusing previously computed predicates to skip redundant tree-walking operations, adding leaf-specific branches to mask handling and metadata setting, and caching key strings to reduce allocations, resulting in improved eager and compiled performance without changing existing behavior for multi-argument or nested calls.

  • URL: pull/23300
  • Associated Commits: 924c4, effb7, ab0e0, db5c3, 4d8de, 0e57f, 9277c, eee17, a9564, 42917, e4039

3. perf(layers): extend CallSpec fast path to training= kwarg: This pull request extends the CallSpec fast path in Layer.__call__ to efficiently handle calls with a single training=<bool> keyword argument—closing a performance gap left by a prior change (#23198)—thereby significantly reducing slow-path binder invocations during typical training/evaluation calls without altering behavior for other call shapes, and includes thorough tests and benchmarks confirming improved call binding efficiency and compatibility across backends.

  • URL: pull/23288
  • Associated Commits: 9dd3d, b5e04, 9143a, 4d75f, f4ebe, 940d5, 2f084, e4908, 2d0b2

Other Closed Pull Requests

  • Performance optimizations in Keras Layer and Torch backends: Multiple pull requests improve performance by optimizing key methods and functions. These include widening the input-conversion gate in Layer.__call__ to skip redundant conversions, optimizing the torch backend's _dict_to_ordered_dict for deterministic behavior and compatibility with torch.compile, and adding a fast path in Loss.__call__ to bypass overhead for plain torch tensors, collectively enhancing efficiency in common training and evaluation workflows.
    • pull/23296, pull/23201, pull/23187
  • Backend dtype and memory optimizations: Several pull requests focus on improving dtype handling and memory efficiency in backend operations. These include optimizing standardize_dtype with O(1) membership checks and caching, eliminating redundant contiguous memory copies in PyTorch convolution input paths, and fixing cache key issues related to tf.DType hash/equality coercion, resulting in micro-benchmark speedups and better compatibility with compilation tools.
    • pull/23182, pull/23199
  • Fixes and improvements for Keras functional model dict input handling: Two pull requests address issues with dictionary inputs in Keras functional models by filtering out extra keys that cause incorrect flattening or input mismatches. They introduce reconciliation mechanisms to ensure consistent behavior in eager and symbolic calls, improving error clarity and input matching correctness.
    • pull/23261, pull/23260
  • Distributed training and multiprocessing fixes: Pull requests improve PyTorch distributed training stability by changing multiprocessing start methods to avoid CUDA deadlocks, adjusting data layouts and samplers, and refactoring distributed test lifecycle management to prevent timeouts and port collisions in CI environments.
    • pull/23456, pull/23590
  • New and fixed mathematical operations in keras.ops.numpy: Multiple pull requests add or fix numpy-compatible operations in keras.ops.numpy. These include adding copysign with backend-agnostic behavior, fixing nextafter to return the largest finite float32 instead of infinity, clamping inputs in erfinv to avoid infinite results near 1.0, and introducing float_power to handle integer bases raised to negative exponents consistently across backends.
    • pull/23498, pull/23417, pull/23500, pull/23488
  • Implementation of covariance function in keras.ops: A pull request implements the cov function to estimate covariance matrices consistent with np.cov, supporting 1D and 2D inputs and ensuring compatibility across multiple backends with consistent error handling and tests.
    • pull/23494
  • Test infrastructure and CI workflow improvements: Pull requests improve test exclusion mechanisms by switching to exact test node ID matching and refactor CI workflows by extracting CPU test jobs into reusable workflows. These changes enhance test reliability, transparency, and reduce redundancy in nightly jobs.
    • pull/23569, pull/23572
  • API consistency and code ownership updates: Pull requests address API consistency by exporting keras.ops.random as an alias to keras.random to prevent attribute errors, and update the CODEOWNERS file to add the core team for workflow directory changes, facilitating smoother PR merges.
    • pull/23585, pull/23589
  • Fixes for metrics and symbolic tracing issues: Pull requests fix the CosineSimilarity metric to properly serialize the axis parameter and address failures of ops.multi_hot and ops.unfold under symbolic graph tracing in OpenVINO and TensorFlow by correcting dynamic batch dimension handling.
    • pull/23285, pull/23348
  • New loss function for sparse categorical focal crossentropy: A pull request introduces the sparse_categorical_focal_crossentropy loss and wrapper to efficiently handle sparse integer labels by internally converting them to one-hot, reducing memory usage for large-scale tasks with comprehensive tests ensuring equivalence to the categorical version.
    • pull/23445
  • Fixes and improvements in Gaussian blur and Graphviz label security: Pull requests fix the gaussian_blur function to correctly map height and width parameters for kernel construction across backends and address security issues in make_layer_label by escaping HTML-like fields to prevent injection and formatting errors.
    • pull/23614, pull/23262

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
pctablet505 88 0 0 0
JyotinderSingh 21 5 0 20
hertschuh 10 3 0 21
Neilblaze 14 5 4 0
18 0 0 0
SamanehSaadat 17 0 0 0
M0nd0R 14 3 0 0
laxmareddyp 10 5 1 1
samudraneel05 7 3 1 6
MarcosAsh 11 5 0 0

Access Last Week's Newsletter:

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