How keras is put together
This is the keras-team/keras repository: a pure-Python deep learning framework ('Multi-backend Keras') that provides the Keras 3 API (layers, models, optimizers, ops, callbacks, etc.) on top of pluggable backends (TensorFlow, JAX, PyTorch, OpenVINO). The public API lives in `keras/api` as autogenerated re-export modules (generated by `api_gen.py` via `namex`) pointing into implementation code under `keras/src`. A legacy compatibility package `keras/api/_tf_keras` mirrors the full API for tf_keras users. There is no server, datastore, or network service; data flow is user code -> public API -> backend-specific tensor operations.
Languages
Frameworks
Infrastructure
Major components
keras/api (public API surface)
Autogenerated 'DO NOT EDIT' re-export modules exposing activations, layers, models, optimizers, ops, saving, etc., plus the `_tf_keras` legacy mirror.
keras/src/backend
Backend abstraction layer with per-backend implementations (jax, tensorflow, torch, openvino) selected via keras/src/backend/config.py.
keras/src/layers & models
Core neural-network building blocks: Layer base class, InputLayer/InputSpec, Model and Sequential with training/evaluation loops.
keras/src/ops
Backend-agnostic tensor operations (Operation/Function classes) exposed through the `keras.ops` namespace.
keras/src/callbacks
Training lifecycle hooks including ModelCheckpoint, TensorBoard, CSVLogger, EarlyStopping, RemoteMonitor, and Orbax checkpointing.
keras/src/export
Model export to external formats: LiteRT, ONNX, OpenVINO, SavedModel, Torch export archives.
keras/src/applications
Pretrained vision architectures (ResNet, VGG, MobileNet, EfficientNet, ConvNeXt, etc.) with ImageNet utilities.
keras/src/datasets
Small built-in datasets (MNIST, CIFAR, IMDB, Reuters, housing) downloaded and loaded via npz_utils.
A quiet week with one small API cleanup unifying how code checks whether something is a tensor.
5 weeksWeek of 2026-08-24
Week of 2026-08-24latest
A quiet week with one small API cleanup unifying how code checks whether something is a tensor.
Week of 2026-08-17
Quantization got a major correctness pass, with GPTQ batching, AWQ alignment to the reference method, and a sweep of quantizer bugs, alongside security hardening for Keras files.
Week of 2026-08-10
The week centered on fixing edge cases in core math operations across backends, especially bitwise ops, array rotations, and index lookups.
Week of 2026-08-03
A busy week headlined by initial MLX backend support and the first pluggable-backend refactor, plus many fixes to ops, quantization, and training utilities.
Week of 2026-07-27
The busiest week, adding ternary-weight layers and PyTorch data parallelism, improving OpenVINO performance, and fixing numerous loss, metric, and backend bugs.
Over the past five weeks, Keras development focused heavily on model quantization (GPTQ, AWQ, int4/ternary weights) and on expanding backend support, including initial MLX support and a pluggable-backend refactor. Alongside these bigger efforts, the team shipped a steady stream of bug fixes across TensorFlow, NumPy, JAX, PyTorch, and OpenVINO backends, plus improvements to data handling, losses, metrics, and developer tooling. The final week was quiet with a single cleanup commit normalizing tensor-checking APIs.
Week by week
2026-08-24A quiet week with one small API cleanup unifying how code checks whether something is a tensor.latest1 change
Refactor
Unified tensor-checking helper
Standardized the is_tensor check so all backends use the same shared implementation instead of per-backend versions.
2026-08-17Quantization got a major correctness pass, with GPTQ batching, AWQ alignment to the reference method, and a sweep of quantizer bugs, alongside security hardening for Keras files.6 changes
Refactor
Faster GPTQ calibration
Batched the calibration forward passes and switched to a Cholesky-based inverse-Hessian computation to speed up GPTQ quantization.
Fix
AWQ aligned with reference implementation
Updated AWQ quantization to match the official reference by using mean statistics, weight-aware scaling, and clipping.
Fix
Quantizer bug sweep
Fixed several quantization bugs including keyword arguments in get(), group-index loading, and 2-bit GPTQ correctness.
Fix
Security fixes for Keras files
Added protections against decompression-bomb config files and validated file names derived from remote origins in the Keras file editor.
Fix
Loss and searchsorted fixes
Fixed categorical crossentropy label smoothing for custom axes and corrected multi-dimensional searchsorted behavior in the TensorFlow backend.
Chore
Pluggable backend rewind
Reverted recent pluggable-backend commits to restore master to a known-good state while that work is reworked.
2026-08-10The week centered on fixing edge cases in core math operations across backends, especially bitwise ops, array rotations, and index lookups.6 changes
Fix
Bitwise op fixes for scalar inputs
Corrected shape and dtype resolution when bitwise and shift operations are used with scalar inputs.
Fix
rot90 fix for non-square arrays
Fixed 90-degree array rotation in the TensorFlow backend so it works correctly on non-square arrays.
Fix
unravel_index coordinate order fix
Corrected the coordinate ordering returned by unravel_index in the TensorFlow backend.
Feature
cbrt fallback added
Added a fallback cube-root implementation for backends that lack native support for the operation.
Fix
cross() compatibility with NumPy 2.5
Fixed the cross-product operation and its tests to work with NumPy version 2.5.0 and later.
Refactor
Loss scale optimizer cleanup
Extracted a shared gradient-unscaling helper inside LossScaleOptimizer to reduce duplication.
2026-08-03A busy week headlined by initial MLX backend support and the first pluggable-backend refactor, plus many fixes to ops, quantization, and training utilities.6 changes
Feature
Initial MLX support
Landed the first working support for Apple's MLX framework as a Keras backend.
Refactor
Pluggable backend refactor begins
Started restructuring the codebase to make it easier to plug in custom third-party backends.
Feature
gammainc op added
Implemented the incomplete gamma function in keras.ops for mathematical computations.
Feature
PyTorch DTensor distribution utilities
Added robust and optimized distributed-tensor utilities for running models across devices with the PyTorch backend.
Fix
LoRA freezing fix for int4 layers
Fixed enable_lora so it freezes the embedding variable itself rather than the unpacked int4 tensor.
Refactor
Faster array unstacking
Optimized splitting arrays into lists of tensors in the NumPy and JAX backends.
2026-07-27The busiest week, adding ternary-weight layers and PyTorch data parallelism, improving OpenVINO performance, and fixing numerous loss, metric, and backend bugs.6 changes
Feature
TernaryDense layer added
Introduced a new dense layer using ternary weights (-1, 0, +1) for more compact models.
Feature
PyTorch data parallelism
Added data-parallel training support so models can train across multiple GPUs with the PyTorch backend.
Refactor
OpenVINO speedups
Improved OpenVINO performance with dynamic-shape support for diagonal ops, native adaptive pooling, and faster sort/median operations.
Fix
Tversky loss parameter swap fixed
Corrected alpha and beta parameters being swapped in the Tversky loss function.
Fix
R2Score sample counting fixed
Fixed incorrect inflation of the sample count in the R2Score metric and refactored it for readability.
Fix
GPTQ/AWQ layer coverage fix
Fixed quantization so layers outside the standard quantization structure are handled correctly by GPTQ and AWQ.
Dependencies and code review
Dependency advisories
Security Watch
No known advisories across 0 scanned dependencies.
No known advisories in the scanned dependencies.
Code review
No concrete code-level issues confirmed.
Get this report every week for your repos.
GitZoid learns each repo, reports what changed, and flags what needs attention. One flat price for the whole team.
$19 a month, flat · First 10 outputs free · No card required