mrkeyoor.com_
Fri 11 Sept 06:44 UTC
AI Toolsevaluationupdated 11 Sept 2026

keras review

Keras is a Python framework for building and training neural networks through one high-level API. Keras 3 can run the same model code on JAX, TensorFlow, or PyTorch, while OpenVINO is available for inference only.

Verdict

Our Keras install occupied 4,167 MB, and its test suite was still at 1% when our 900-second limit expired, so adopting it means accepting a large development environment and slow full validation. Use Keras when one readable model definition genuinely needs to span JAX, TensorFlow, and PyTorch, or when a TensorFlow team values its high-level API. Choose a backend-native framework when you depend on backend-specific behavior or need a leaner development loop.

We ran it

Lab card: what happened when we ran kerasScreenshot of keras (keras.io)
Install✓ · 98s196 packages · 4167 MB
Build✓ · 5s
Tests✗ timed out · 900sran, no count parsed
Known vulns28(pip-audit)
Repo1027 files~329,907 lines of source · 11.9 MB · 14 CI workflows

Answers from our run

Does keras build from source?

Dependencies installed in 98 seconds (196 packages), and the build succeeded in 5 seconds. We cloned commit 53c11fd into a clean Debian container with 3 CPUs and no project-specific setup.

Do keras's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Does keras have known vulnerabilities in its dependencies?

pip-audit flagged 28 known advisories in the dependency tree at the time of our run.

Who should not use keras?

Native Windows teams unwilling to use WSL2: the README lists Linux and macOS compatibility and recommends WSL2 for Windows.

What are the alternatives to keras?

PyTorch, TensorFlow, Flax. Our Keras install occupied 4,167 MB, and its test suite was still at 1% when our 900-second limit expired, so adopting it means accepting a large development environment and slow full validation.

Setup3/55-second build, but 4,167 MB installed and tests timed out
Docs5/5Clear backend, platform, migration, and development guidance
Community5/564,317 stars with issues and fixes active in September 2026
Maturity5/5Keras 3 has active CI and a recent security patch release

Who it’s for

Python teams that want a readable model API without committing every model definition to one backend.
Researchers who need to compare JAX, TensorFlow, and PyTorch execution while keeping shared Keras code.
Product teams already using TensorFlow that want a supported route into Keras 3.
Educators who need an approachable neural-network API backed by extensive guides and examples.

Who it’s NOT for

Native Windows teams unwilling to use WSL2: the README lists Linux and macOS compatibility and recommends WSL2 for Windows.
Applications that need to switch backends inside one Python process: Keras requires choosing the backend before import and says it cannot be changed afterward.
OpenVINO users who need training rather than serving: the README limits that backend to inference.
Teams expecting custom TensorFlow layers to become portable automatically: the README says custom components must be converted to backend-neutral Keras APIs.
Small containers or quick full-suite checks: our install occupied 4,167 MB, and the tests timed out at 900 seconds while still showing 1% progress.

Setup reality

Our sandbox installed 196 Python packages in 98 seconds and used 4,167 MB on disk. The build succeeded in 5 seconds. Tests timed out after 900 seconds, with the log still at 1%. Pip-audit found 28 known vulnerabilities in the installed environment.

Keras also needs a backend package: TensorFlow, JAX, or PyTorch. OpenVINO works for inference only. Basic local use needs no credentials. GPU setup uses a backend-specific dependency file and an installed NVIDIA driver.

The README supports Linux and macOS and recommends WSL2 on Windows. You must select the backend before importing Keras, and the process cannot switch it later. A development checkout has 14 CI workflows, no Dockerfile, and no top-level tests directory.

Keras 3 puts one model API across 4 backends

Keras 3 targets JAX, TensorFlow, PyTorch, and OpenVINO through one high-level Python interface. The first 3 can train models; OpenVINO is an inference-only option. This arrangement suits teams that want familiar layers, losses, optimizers, and training calls while retaining some choice about the engine underneath. The README also presents Keras 3 as a replacement for Keras 2, which remains available separately as tf-keras.

Portability has practical limits in a codebase of about 329,907 source lines. Built-in Keras components are designed to cross backend boundaries. Custom work can do the same when it uses keras.ops and other neutral interfaces. Code written directly against TensorFlow operations stays tied to TensorFlow until someone rewrites it. Model definitions may travel, while custom training steps, data behavior, device code, and debugging habits still need tests on every backend a team intends to support.

A 4,167 MB install changes the meaning of easy setup

Our sandbox installed 196 packages in 98 seconds and ended with 4,167 MB on disk. The build itself took only 5 seconds. Keras is easy to request from pip, yet a development environment includes far more than the top-level package. The repository tells users to install a backend separately, and its local requirements can cover several of them. Budget storage and dependency resolution before adding this checkout to each developer machine or a small CI runner.

GPU setup is split across TensorFlow, JAX, and PyTorch dependency files. Each route expects an NVIDIA driver, and the README recommends a clean environment to avoid CUDA conflicts. Windows developers are directed to WSL2; Linux and macOS are the named local platforms. Keras reads the selected backend before import and will not change it in the same process. A service offering several engines needs separate processes or jobs that choose one engine per deployment.

What happened when we ran it

Our run cloned commit 53c11fd into an unprivileged Debian container with 3 CPUs, 8 GB of RAM, Python 3.12, and no secrets. Installation succeeded in 98 seconds, adding 196 packages and consuming 4,167 MB. The source build succeeded in 5 seconds. Before installation, the checkout held 1,027 files, roughly 329,907 source lines, and occupied 11.9 MB.

The tests did not finish within our 900-second cap. The final log was still at 1%, in applications_test.py. Visible channels-last NASNet and ResNet cases had passed, while corresponding channels-first cases were skipped. The last line showed the ResNet50V2 channels-last case starting, without a recorded result. That tail does not prove a defect or a passing suite. It shows that this checkout needs a longer test window than our sandbox allowed.

Pip-audit reported 28 known vulnerabilities among the installed dependencies. Our measurement does not identify their severity, reachability, or source packages, so the count cannot be treated as 28 exploitable Keras flaws. An adopter still needs to export the resolved environment, map each advisory to runtime use, and update affected dependencies where possible. The repository includes 14 CI workflow files, no Dockerfile, and no top-level tests directory.

Backend portability stops at custom framework calls

The README names 4 backends, with its strongest portability case applying to code built from Keras interfaces. A standard model can use familiar compile, fit, evaluate, and predict calls across JAX, TensorFlow, and PyTorch. Custom components written with one framework's tensor operations remain specific to that framework. Keras says they can be converted through its neutral APIs, which is still engineering work. Port one representative model before treating backend choice as interchangeable.

OpenVINO has a narrower contract: inference only. Data input is broader because Keras accepts common pipeline forms, including TensorFlow datasets with other backends. Teams should still check preprocessing, random state, numerical tolerance, serialization, and exported artifacts. One shared API reduces duplicate model code; it does not make 3 training runtimes behave identically in every edge case.

Release v3.12.4 fixed 4 model-loading risks

Keras 3.12.4 was published on July 29, 2026 as a security patch. Its notes describe 4 hardening changes: restricted unpickling for IMDB and Reuters data, verification of intermediary H5 groups, decompression-ratio checks for .keras assets, and restricted unpickling for CIFAR data. Anyone loading downloaded datasets or model archives should treat the patch release as a minimum review point before keeping an older Keras 3 installation.

September 2026 activity shows maintainers are responding

GitHub recorded the last push on September 11, 2026, with 64,317 stars and 180 open issues and pull requests. The combined open count is not a bug count. Issue 23258, about an extra dictionary key being mistaken for a model input, closed on September 10. Issue 23555 proposed a backend-neutral linear-attention layer, and issue 23601 opened a discussion about requiring assigned issues before contributors submit pull requests.

That same-day issue activity and a recent source push show current maintenance. The project also has 14 CI workflow files and an Apache-2.0 license. The less comfortable signal comes from our validation: 900 seconds was insufficient to get beyond 1% of the suite. Contributors should run focused tests during development and reserve much more time for the full matrix.

Keras is worth the weight when backend choice is deliberate

A 5-second build makes Keras quick to inspect, while a 4,167 MB environment and a suite beyond our 900-second cap make it expensive to validate end to end. That cost is defensible when one approachable API must cover 3 training backends. It is harder to justify after a deployment has standardized on one engine and regularly uses its specialized interfaces. Test a representative model on the 2 backends you might deploy, including custom layers and saved files, before calling the code portable.

Alternatives

ProjectWhat it isPick it when
PyTorch gh↗A tensor and neural-network framework with its own eager-first programming model.pick this instead when direct PyTorch APIs, extensions, and ecosystem conventions matter more than portable Keras model code.
TensorFlow gh↗A full machine-learning framework covering training, serving, devices, and deployment tools.pick this instead when your system is committed to TensorFlow internals and does not need backend portability.
FlaxA neural-network library designed around JAX and its functional programming style.pick this instead when JAX-native control matters more than sharing a high-level API across backends.

What people are saying

  1. [velocity-scout] keras-team/keras

Sources

  1. Keras repository and README
  2. Keras 3.12.4 security release
  3. Dictionary input bug issue 23258
  4. LinearAttention proposal issue 23555
  5. Pull request policy RFC issue 23601

More ai tools reviews

reference-video-director · whisper.cpp · agency-agents-zh · speech-to-speech · alphagenome · awesome-generative-ai-apps · the whole board →