{ "model": "relu-clip efflite4 distilled from CLIP ViT-L/14", "input": { "size": 224, "layout": "NHWC", "channels": "RGB", "resize": "shortest side to 224, bicubic", "crop": "center 224x224", "scale": "divide by 255 to [0,1], then (x - mean) / std", "mean": [ 0.48145466, 0.4578275, 0.40821073 ], "std": [ 0.26862954, 0.26130258, 0.27577711 ], "quantization": { "dtype": "int8", "scale": 0.015443762764334679, "zero_point": -12, "formula": "q = clip(round(x / scale + zero_point), -128, 127)" } }, "output": { "embed_dim": 768, "normalised": false, "note": "L2 normalisation is deliberately left out of the graph so the accelerator subgraph stays free of reductions; do it on the host after dequantising.", "quantization": { "dtype": "int8", "scale": 0.3109022378921509, "zero_point": -5, "formula": "x = (q - zero_point) * scale" } }, "text_embeddings": { "imagenet1k_text_emb_vitl14.npz": { "keys": [ "embs", "labels" ], "shape": [ 1000, 768 ], "normalised": false, "note": "average over the 80 OpenAI ImageNet templates; row norms 0.81-0.93, normalise before use" }, "demo_prompt_emb_vitl14.npz": { "keys": [ "text_emb", "labels" ], "shape": [ 11, 768 ], "normalised": true, "note": "prompts encoded verbatim, no templating" } }, "classification": "cosine(L2norm(image_emb), L2norm(text_emb)) -> argmax" }