LayBraid/OpenIA-Implementation
0
1import clip2import gradio as gr3import os4import torch5from torchvision.datasets import CIFAR1006from transformers import CLIPProcessor, CLIPModel7 8model = CLIPModel.from_pretrained("openai/clip-vit-base-patch32")9processor = CLIPProcessor.from_pretrained("openai/clip-vit-base-patch32")10 11cifar100 = CIFAR100(root=os.path.expanduser("~/.cache"), download=True, train=False)12 13text_inputs = []14 15for c in cifar100.classes:16 classes = "a photo of a " + c17 print(classes)18 text_inputs.append(classes)19 20print(text_inputs)21 22test = ["a photo of a dog", "a photo of a cat"]23 24 25def send_inputs(img):26 inputs = processor(text=test, images=img, return_tensors="pt", padding=True)27 28 outputs = model(**inputs)29 logits_per_image = outputs.logits_per_image30 probs = logits_per_image.softmax(dim=1)31 32 result = probs.argmax(dim=1)33 index = result.item()34 print(test[index])35 return test[index]36 37 38if __name__ == "__main__":39 gr.Interface(title="CAT OR DOG ???", fn=send_inputs, inputs=["image"], outputs="text").launch()40 