HyperView / scripts /demo_hyperbolic_clip.py
morozovdd's picture
feat: add HyperView app for space
23680f2
#!/usr/bin/env python
"""Demo: CLIP (Euclidean) + HyCoCLIP (Poincaré) on CIFAR-100."""
import hyperview as hv
import hyperview.embeddings.providers.hycoclip # noqa: F401
from hyperview.embeddings.providers import ModelSpec
DATASET_NAME = "cifar100_clip_hycoclip"
HF_DATASET = "uoft-cs/cifar100"
HF_SPLIT = "test"
HF_IMAGE_KEY = "img"
HF_LABEL_KEY = "fine_label"
NUM_SAMPLES = 200
CLIP_MODEL_ID = "openai/clip-vit-base-patch32"
HYCOCLIP_MODEL_ID = "hycoclip_vit_s"
def main() -> None:
print("Loading CIFAR-100 from Hugging Face...")
dataset = hv.Dataset(DATASET_NAME, persist=False)
dataset.add_from_huggingface(
HF_DATASET,
split=HF_SPLIT,
image_key=HF_IMAGE_KEY,
label_key=HF_LABEL_KEY,
max_samples=NUM_SAMPLES,
)
print(f"Loaded {len(dataset)} samples")
clip_space = dataset.compute_embeddings(CLIP_MODEL_ID)
dataset.compute_visualization(space_key=clip_space, geometry="euclidean")
hycoclip_spec = ModelSpec(provider="hycoclip", model_id=HYCOCLIP_MODEL_ID)
hycoclip_space = dataset.compute_embeddings(hycoclip_spec)
dataset.compute_visualization(space_key=hycoclip_space, geometry="poincare")
print("Launching at http://127.0.0.1:6262")
hv.launch(dataset, open_browser=True)
if __name__ == "__main__":
main()