Weekly GitHub Report for Keras: July 07, 2026 - July 14, 2026 (00:16:55)
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:
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, new quantization methods including Activation-aware Weight Quantization, and a ScheduleFreeAdamW optimizer. It also significantly enhances OpenVINO backend support with extensive NumPy, neural network, and control flow operations, adds batch renormalization and gated attention layers, and improves multi-backend NumPy operations and preprocessing capabilities.
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.
-
[TYPE:FEATURE] Add reconstruct_patches op + ReconstructPatches{2,3}D layers (inverse of extract_patches): This issue proposes adding the inverse operation of
keras.ops.image.extract_patchesto Keras, including both functional ops and layer wrappers for 2D and 3D cases, to enable reconstruction of images from patches. The implementation focuses on the basic non-overlapping scenario with plans for incremental enhancements, aiming to fill a usability gap and bring Keras to parity with PyTorch's fold/unfold functionality.- The comments express appreciation for the feature, share personal workarounds highlighting the need for this functionality, discuss challenges in contributing to Keras, and include follow-ups from the author addressing review feedback and encouraging collaboration.
- Number of comments this week: 1
-
[TYPE:BUG] [Bug]
tf.dataclass weights fail for omitted classes: This issue describes a bug in Keras where theclass_weightparameter inModel.fitbehaves inconsistently between array inputs andtf.data.Datasetinputs, specifically when some class weights are omitted. The problem arises becausetf.data.Datasetinputs cause an out-of-range error during the internaltf.gatheroperation if the dataset contains class IDs greater than the largest key in the providedclass_weightdictionary, whereas array inputs handle this scenario without error by assigning a default weight of 1.0.- The single comment acknowledges the issue and provides a reproducible example via a shared gist, confirming the problem and facilitating further investigation.
- Number of comments this week: 1
-
[TYPE:BUG] [Bug]
model.fit()hangs indefinitely after callingStringLookup.adapt()on macOS Apple Silicon (CPU) with TF 2.21.0 + Python 3.13: This issue reports that on macOS Apple Silicon with TensorFlow 2.21.0 and Python 3.13, callingStringLookup.adapt()causesmodel.fit()to hang indefinitely due to a deadlock in the internaltf.datapipeline. Further investigation revealed that the root cause is notadapt()itself but the order of imports: importing pandas before TensorFlow triggers the hang by causing thread pool conflicts, while importing TensorFlow first avoids the issue.- The comments confirm the issue is reproducible and identify pandas import order as the trigger rather than
adapt(). They provide detailed test results showing that importing TensorFlow before pandas prevents the hang, and explain the likely cause as a thread pool conflict on Apple Silicon. A simple workaround of reordering imports is confirmed to resolve the deadlock. - Number of comments this week: 1
- The comments confirm the issue is reproducible and identify pandas import order as the trigger rather than
-
[TYPE:BUG] [Bug] GPU Memory leak in torch backend:
torchtree_impl.pyclosure captures tensor containers: This issue reports a GPU memory leak occurring in the torch backend during iterative batch predictions, caused by a reference cycle intorchtree_impl.pywhere a lambda function captures tensor containers, preventing timely garbage collection and leading to out-of-memory errors. The proposed fix involves changing the identity comparison in the lambda to useid()to break the reference cycle path to GPU tensors, thereby allowing memory to be released more predictably during inference loops.- The comments discuss general performance optimization strategies emphasizing profiling and caching, and a user confirms experiencing similar memory leaks linked to recent Keras versions, identifying a specific pull request as the likely cause.
- Number of comments this week: 1
-
[TYPE:BUG] keras.ops.multiply returns NaN instead of -Inf when multiplying -Inf by float32 subnormal value: This issue reports that the
keras.ops.multiplyfunction incorrectly returnsNaNwhen multiplying-Infby a positivefloat32subnormal value, whereas the expected behavior is to return-Infconsistent with NumPy'snp.multiply. The problem highlights an incorrect handling of special floating-point values in Keras multiplication operations, which could affect numerical computations during model training or inference.- The comments note that
multiplyis a frequently used function and adding checks for float32/64 values could introduce overhead; a follow-up comment confirms the issue persists in Keras 3.15.0 and provides a reproducible example for further investigation. - Number of comments this week: 1
- The comments note that
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: 10
Summarized Issues:
- Tensor shape and output handling issues: Several issues report problems related to tensor shape mismatches and output handling in Keras functions and layers. These include dimension mismatch errors in the
reduce_weighted_valuesfunction when using CTC loss with Masking layers, silent mis-attribution of outputs due to changes in theLayer.outputproperty and removal of node-specific output methods, and incorrect output shapes in theops.dotfunction for certain backends caused by improper batch matrix multiplication. - [issues/23228, issues/23238, issues/23248]
- New operation and layer addition requests: Multiple issues request the addition of new operations or layers to Keras to enhance functionality. These include adding a backend-agnostic
connected_componentoperation for image processing, Mosaic Augmentation and GridMask data augmentation layers, a native API for merging LoRA adapter weights, and a per-sample connection-level stochastic regularization layer inspired by DropConnect. - [issues/23236, issues/23239, issues/23240, issues/23244, issues/23246]
- Backend function correctness and performance concerns: Some issues highlight critical bugs and performance problems in Keras backend functions and preprocessing layers. These include mathematically incorrect weighted average calculations and shape mismatches in the
keras.ops.averagefunction across multiple backends, as well as benchmarking results showing unexpectedly slow GPU performance and high VRAM usage for preprocessing and augmentation layers at higher image resolutions. - [issues/23245, issues/23250]
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: 15
Summarized Issues:
- XLA and Backend Compatibility Issues: Several issues highlight compatibility problems with XLA JIT compilation and various backends in Keras, including errors with cuDNN RNN layers and the torch backend when using
jit_compile=True. These incompatibilities cause fallback to non-XLA execution or training failures, impacting performance and usability. - issues/18456, issues/22282
- Data Augmentation and Transformation Challenges: Multiple issues discuss enhancements and problems related to data augmentation layers, such as RandomRotation and RandomResizedCrop, including handling variable creation in tf.function, adding new options to avoid artifacts, synchronizing transformations for masks, and backend-specific performance issues on TPUs. These challenges affect augmentation reliability, efficiency, and documentation quality.
- issues/21954, issues/21822, issues/23229
- Distributed and Multi-GPU Training Limitations: Issues report errors and limitations when using multi-node distributed training strategies like
MultiWorkerMirroredStrategyand problems with batch size divisibility in multi-GPU setups. These limitations complicate scaling training across multiple devices and nodes without data loss or errors. - issues/20585, issues/21167
- New Feature Requests for Data Handling and Utilities: Requests include adding a video reading utility API similar to image loaders, a Euclidean distance transform method across multiple backends for preprocessing, and improved access to dataloader inputs and model outputs within callbacks for advanced evaluation. These features aim to enhance data processing capabilities and flexibility in Keras workflows.
- issues/19055, issues/22038, issues/19022
- Integration and Migration of Layers and APIs: Discussions cover migrating RandomApply and RandomChoice layers from keras-cv to the main Keras repository, including testing and module placement, as well as requests for native support to merge LoRA adapter weights after training. These efforts focus on improving layer availability and model weight management.
- issues/20727, issues/23243
- Package Compatibility and Dependency Management: One issue highlights the need to upgrade the
ai-edge-litertpackage to maintain compatibility with TensorFlow 2.20.0 and suggests re-enabling Dependabot for automatic updates. This is important to ensure smooth operation of LSTM-related functionalities. - issues/21914
- Custom Gradient and remat Functionality Limitations: An issue describes a
ValueErrorcaused by thecustom_gradientdecorator only supporting keyword arguments when eager execution is enabled, which affects model training with certain remat modes. This limits flexibility in gradient customization under specific execution contexts. - issues/21207
- Flash Attention Integration Considerations: There is a discussion about adding Flash Attention, a fast and memory-efficient exact attention mechanism, to Keras with backend operation support, referencing implementations in other frameworks. This aims to improve attention mechanism performance in Keras models.
- issues/19418
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: 12
Key Open Pull Requests
1. [Fix] keras.ops inconsistently downcasts float64 to float32: This pull request fixes the issue where keras.ops operations inconsistently downcast float64 inputs to float32 by introducing a shared dtype helper that ensures consistent handling of array and list inputs across multiple affected operations such as add, subtract, multiply, divide, power, mod, and fmod when using the PyTorch backend.
- URL: pull/23225
2. Fix rank mismatch between loss values and mask/sample_weight in Torch backend: This pull request fixes a RuntimeError in the PyTorch backend of Keras by modifying the loss reduction function to automatically reduce the rank of mask and sample_weight tensors when they have higher dimensions than the loss values, addressing a mismatch issue that occurs when certain loss functions reduce dimensions but the mask or weights retain their original shape.
- URL: pull/23235
3. Fix inconsistent padding behavior in Torch pooling operations: This pull request addresses and fixes numerical inconsistencies in the Torch backend's handling of "same" padding for pooling operations by replacing replicate padding with zero-padding and -inf padding for AveragePooling and MaxPooling respectively, aligning its behavior with other backends like JAX and TensorFlow, and refactors the internal padding utility to support custom padding modes and values.
- URL: pull/23233
Other Open Pull Requests
- Backend operation fixes and improvements: Multiple pull requests address correctness and consistency issues in backend operations across TensorFlow, PyTorch, and other backends. These include fixing
keras.ops.padsymmetric mode in PyTorch, correctingops.dotaxis contraction in PyTorch, and ensuringkeras.ops.averagematches NumPy semantics with proper validation and weighted average calculations. - pull/23230, pull/23247, pull/23249
- Enhancements to keras.ops functionality: New operations and generalizations are introduced to expand keras.ops capabilities. This includes adding the
matrix_poweroperation for integer powers of square matrices and generalizing thein_top_koperation to support multi-dimensional inputs across multiple backends with updated indexing strategies. - pull/23227, pull/23232
- Batch bundling support in PyTorch backend: A pull request implements batch bundling with
steps_per_executiongreater than one in the PyTorch backend, improving performance by reducing Python overhead and enabling better loop optimizations viatorch.compile. Training, testing, and prediction functions are updated to handle multiple batches efficiently while preserving nested output structures. - pull/23234
- Fixes for ambiguous Functional API behavior: One pull request resolves ambiguous behavior of the
Operation.inputandOperation.outputproperties when a Keras operation or layer is reused across multiple inbound nodes in the Functional API, clarifying the expected behavior. - pull/23241
- Security hardening of GitHub Actions workflows: Comprehensive security improvements are made by pinning third-party actions to immutable commit SHAs, mitigating template injection vulnerabilities, hardening credential usage, and addressing all actionable findings from a Zizmor security audit. These changes significantly reduce risks of supply chain attacks, code injection, and credential leakage.
- pull/23231
- Fixes to keras.ops.roll parameter handling: The handling of
shiftandaxisparameters inkeras.ops.rollis fixed to correctly broadcast them consistent with NumPy behavior across TensorFlow, PyTorch, and OpenVINO backends. Validation is added to prevent silent failures with non-broadcastable inputs. - pull/23242
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: 2
Key Closed Pull Requests
1. Distribution support for Data Adapters and Datasets (Torch backend): This pull request introduces comprehensive support for distributed training in the PyTorch backend of Keras, enabling both Data Parallelism and Model Parallelism to align with the Keras 3 distribution API and facilitate scaling models across multiple devices and hosts with minimal code changes.
- URL: pull/22937
- Associated Commits: 467d8, fa9e1, a56b4, 70f59, 4cb7f, 6c597, c52b0, 0334f, 76cdc, ac95a, 76bbd, 6888f, b8dc1, 960d2
- Associated Commits: 467d8, fa9e1, a56b4, 70f59, 4cb7f, 6c597, c52b0, 0334f, 76cdc, ac95a, 76bbd, 6888f, b8dc1, 960d2
2. Refactor _load_state to capture weight store and improve container state loading: This pull request refactors the _load_state function to capture the weight store in a local variable to avoid redundant calls and improves the _load_container_state logic by isolating failure tracking for recursive calls, thereby enhancing the detection of missing nested containers in legacy files while maintaining backward compatibility.
- URL: pull/23226
- Associated Commits: 63ba6
- Associated Commits: 63ba6
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 |
|---|---|---|---|---|
| MarcosAsh | 57 | 1 | 0 | 0 |
| rstar327 | 38 | 11 | 0 | 0 |
| buildwithsuhana | 19 | 8 | 2 | 6 |
| ChiragSW | 20 | 2 | 0 | 3 |
| simeon-kepp | 9 | 0 | 0 | 7 |
| SID-6921 | 12 | 2 | 0 | 0 |
| devs6186 | 8 | 4 | 0 | 0 |
| maitry63 | 5 | 2 | 0 | 4 |
| LinZiyuu | 7 | 4 | 0 | 0 |
| pctablet505 | 6 | 3 | 0 | 0 |