canvit-nnx
The JAX and Flax NNX implementation of CanViT (Canvas Vision Transformer). Read the root backend documentation for the cross-backend API and tensor conventions.
Install
uv add canvit-nnx
Load a Hugging Face checkpoint
Load a pretrained model and an ADE20K probe from Hugging Face. Replace
path/to/image.jpg with your image path.
import jax
import jax.numpy as jnp
from PIL import Image
from canvit_nnx import CanViTForSemanticSegmentation, Viewpoint, sample_at_viewpoint
from canvit_nnx.preprocess import preprocess
scene = jnp.asarray(preprocess(512)(Image.open("path/to/image.jpg").convert("RGB")))[None]
model = CanViTForSemanticSegmentation.from_pretrained_with_probe(
pretrained_repo="canvit/canvitb16-add-vpe-pretrain-g128px-s512px-in21k-dv3b16-2026-02-02-nnx",
probe_repo="canvit/probe-ade20k-40k-s512-c64-in21k-nnx",
)
model.eval() # Flax NNX mutates the module and returns None.
viewpoint = Viewpoint.full_scene(batch_size=1)
state = model.init_state(batch_size=1, canvas_grid_size=64)
glimpse = sample_at_viewpoint(spatial=scene, viewpoint=viewpoint, glimpse_size_px=128)
logits, state = model(glimpse=glimpse, state=state, viewpoint=viewpoint)
jax.block_until_ready(logits)
print(logits.shape) # [1, 64, 64, 150]
The model and probe remain separate checkpoints. They use NHWC arrays: scenes
and glimpses are [B, H, W, 3], and the wrapper returns canvas logits as
[B, G, G, num_classes]. Viewpoint centers use (row, col) scene
coordinates in [-1, 1]; each scale is the crop's half-side.
The example uses the ImageNet-21k CanViT-B checkpoint and the ADE20K probe. The JAX / Flax NNX collection also contains the ImageNet-1k pretrained and fine-tuned native checkpoints.
Constructing a model without a checkpoint requires an explicit parameter RNG, for example:
from flax import nnx
from canvit_nnx import CanViT, CanViTConfig
model = CanViT(CanViTConfig(), rngs=nnx.Rngs(0))
Develop from a checkout
cd canvit-nnx
uv sync
The checkout resolves canvit-core from its sibling directory. To convert a
PyTorch checkpoint and run the conversion checks from the repository root:
uv run --project canvit-nnx python -m tools.convert_checkpoints --help
Metadata
Release files for canvit-nnx 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| canvit_nnx-0.2.0.tar.gz | 96.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| canvit_nnx-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 117.3 kB
Release files / canvit_nnx-0.2.0.tar.gz
| Download URL | canvit_nnx-0.2.0.tar.gz |
|---|---|
| Size | 96.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6d6a29d1809e4a3e3917ad5ec427033c560d3f89ceb1309d615f12554f37486c
|
|
BLAKE2b-256 checksum How to use checksums |
1eb42b68f488d2c7f65e860f6fcbaf5e36bdf785d4400bc8b23ade817b2502c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / canvit_nnx-0.2.0-py3-none-any.whl
| Download URL | canvit_nnx-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0a4bd14caab81326197c80ba69b6aa2aa41666c7a40c3aadc4c080e9186e1d05
|
|
BLAKE2b-256 checksum How to use checksums |
b58d7dbc82c1414c3868e485de2ea56a021bc4cad594cd7f55bc926b6f7f984f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.22 {"installer":{"name":"uv","version":"0.12.22","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|