ZeroModels, an open-source project documented at imvision12.github.io, has converted more than 100 model families into pure Keras 3, including recent additions SAM 3, Gemma 4, and GLM-5. The pitch is portability: the same model code executes on JAX, PyTorch, or TensorFlow with neither transformers nor torch required at run time.
That distinction matters more than it sounds. Most open-weight releases ship tied to a specific framework, so a team that standardizes on PyTorch for one model and later wants to try a JAX-native training loop typically has to rewrite loading and inference code from scratch. A backend-agnostic zoo lets a team pick its runtime for cost, hardware, or deployment reasons and keep the same model code across that decision, which is a real infrastructure saving even before any performance question gets asked.
The library’s core method, from_weights, is designed to make swapping models trivial. According to the project’s documentation, one call builds a language model, a depth estimator or a detector, and weights may come from three origins. It reads a Keras checkpoint that has already been converted and hosted on the Hugging Face Hub. Given an hf: prefix it takes any compatible Hugging Face repository. Or it accepts a bare variant name, in which case an upstream checkpoint is converted as the model loads. How many classes a fine-tuned checkpoint carries, along with the rest of its architecture, comes from the repository configuration rather than from hardcoded values.
Backend switching itself is handled through a single environment variable, KERAS_BACKEND, set before Keras is imported. The documentation notes that models read the image data format at construction time, so a team wanting channels-first tensors has to set that before building the model rather than after.
Large checkpoints get separate handling. The documentation describes loading GPT-OSS 120B at bfloat16 while keeping its mixture-of-experts weights packed in MXFP4 and dequantizing them on the fly, which it says keeps memory near 66 GB instead of the roughly 130 GB a full fp32 expansion would require. Quantization is weight-only and gets selected through arguments on that same from_weights call, library-wide rather than as a special path bolted onto one model family. The formats supported are mxfp4, fp8, int4 and int8.
One claim in the documentation is worth flagging for what it does not include: the project states that every figure and result shown on a model’s page comes from running that page’s own code sample, rather than being illustrative. That is a reasonable transparency practice for a documentation site, but it is not an independent benchmark, and the page makes no claims about accuracy, speed, or production stability relative to the original PyTorch or Hugging Face implementations it converts from.
No individual maintainer is credited on the site; the project is presented as a collective open-source effort rather than a single-author library. For teams currently locked into a single training or inference framework, ZeroModels is worth a trial import against a small model before any migration commitment, since converting a checkpoint on the fly is a low-cost way to test whether the ported weights match expected outputs on your own data.
According to the ZeroModels project documentation (imvision12.github.io/ZeroModels), accessed September 10, 2026.