Gemma 3n
Collection
kerasformers ports of Google's Gemma 3n on-device multimodal models (image + audio + text), runnable on JAX / PyTorch / TensorFlow. • 4 items • Updated
How to use zeromodels/gemma-3n-e2b with Keras:
# Available backend options are: "jax", "torch", "tensorflow".
import os
os.environ["KERAS_BACKEND"] = "jax"
import keras
model = keras.saving.load_model("hf://zeromodels/gemma-3n-e2b")
See our collection for all Gemma 3n sizes and variants.
Pure-Keras 3 conversion of google/gemma-3n-E2B for
zeromodels. One implementation runs unmodified on
TensorFlow / Torch / JAX. This is a base (pretrained) checkpoint, served here as image + audio + text -> text via Gemma3nConditionalGenerate; weights are
stored in bfloat16.
For model details, license, and usage terms, see Google's model card.
import os
os.environ["KERAS_BACKEND"] = "torch" # or "jax" / "tensorflow"
from zeromodels.models.gemma3n import Gemma3nTextGenerate, Gemma3nTokenizer
model = Gemma3nTextGenerate.from_weights("zeromodels/gemma-3n-e2b")
tokenizer = Gemma3nTokenizer.from_weights("zeromodels/gemma-3n-e2b")
inputs = tokenizer([{"role": "user", "content": "Hello, who are you?"}])
outputs = model.generate(**inputs, max_new_tokens=64)
print(tokenizer.decode(outputs[0]))
from zeromodels.models.gemma3n import Gemma3nConditionalGenerate, Gemma3nProcessor
model = Gemma3nConditionalGenerate.from_weights("zeromodels/gemma-3n-e2b")
processor = Gemma3nProcessor.from_weights("zeromodels/gemma-3n-e2b")
conversation = [
{"role": "user", "content": [
{"type": "image", "url": "https://.../image.jpg"},
{"type": "text", "text": "Describe this image."},
]},
]
inputs = processor(conversation)
outputs = model.generate(**inputs, max_new_tokens=64)
print(processor.decode(outputs[0]))
Load any Gemma 3n variant the same way with from_weights("zeromodels/<variant>"):
| Variant | Hub |
|---|---|
gemma-3n-e2b |
zeromodels/gemma-3n-e2b |
gemma-3n-e2b-it |
zeromodels/gemma-3n-e2b-it |
gemma-3n-e4b |
zeromodels/gemma-3n-e4b |
gemma-3n-e4b-it |
zeromodels/gemma-3n-e4b-it |
KERAS_BACKEND before importing Keras / zeromodels.load_dtype="float32" for full precision,
or quantization="int8" to shrink further.hf: prefix:
Gemma3nConditionalGenerate.from_weights("hf:google/gemma-3n-E2B").A huge thank you to the Google Gemma authors for creating and releasing these models.
License: Gemma (gated). Accept the license on the upstream Hub card before downloading.