Download examples/dinov3_features.py from aws-neuron/vit-encoder-neuron-kernels: direct link, hf CLI and curl.
- Browser
- Download file 984 Bytes
-
https://huggingface.co/kernels/aws-neuron/vit-encoder-neuron-kernels/resolve/v1/examples/dinov3_features.py
- Command line
-
hf download hf://aws-neuron/vit-encoder-neuron-kernels@v1/examples/dinov3_features.py
-
curl -L -o dinov3_features.py https://huggingface.co/kernels/aws-neuron/vit-encoder-neuron-kernels/resolve/v1/examples/dinov3_features.py
984 Bytes
| """DINOv3 ViT-L/16 features on trn2 with vit-encoder-neuron-kernels. | |
| NEURON_LOGICAL_NC_CONFIG=2 python dinov3_features.py | |
| """ | |
| import types | |
| import torch | |
| from kernels import get_kernel | |
| from transformers import AutoModel | |
| k = get_kernel("aws-neuron/vit-encoder-neuron-kernels", version=1, trust_remote_code=True) | |
| model = AutoModel.from_pretrained("facebook/dinov3-vitl16-pretrain-lvd1689m", dtype=torch.float32).eval() | |
| ref_model = AutoModel.from_pretrained("facebook/dinov3-vitl16-pretrain-lvd1689m", dtype=torch.float32).eval() | |
| model = model.to("neuron") | |
| model.forward = types.MethodType(k.NeuronDINOv3ViTModel.forward, model) | |
| model = torch.compile(model, backend="neuron") | |
| torch.manual_seed(0) | |
| pixel_values = torch.randn(4, 3, 224, 224) | |
| with torch.no_grad(): | |
| out = model(pixel_values.to("neuron")).last_hidden_state.cpu() | |
| ref = ref_model(pixel_values).last_hidden_state | |
| print("features", tuple(out.shape), "rel_l2 vs fp32 CPU:", ((out - ref).norm() / ref.norm()).item()) | |