|
from urllib.request import urlopen |
|
|
|
import timm |
|
import torch |
|
from PIL import Image |
|
|
|
from imagenet_classes import IMAGENET2012_CLASSES |
|
|
|
model_name = "eva02_large_patch14_448.mim_m38m_ft_in22k_in1k" |
|
model = timm.create_model(model_name, pretrained=True).eval() |
|
|
|
data_config = timm.data.resolve_model_data_config(model) |
|
transforms = timm.data.create_transform(**data_config, is_training=False) |
|
|
|
|
|
img = Image.open( |
|
urlopen( |
|
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png" |
|
) |
|
) |
|
|
|
with torch.inference_mode(): |
|
output = model(transforms(img).unsqueeze(0)) |
|
|
|
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5) |
|
im_classes = list(IMAGENET2012_CLASSES.values()) |
|
class_names = [im_classes[i] for i in top5_class_indices[0]] |
|
|
|
print("Top 5 predictions:") |
|
for name, prob in zip(class_names, top5_probabilities[0]): |
|
print(f" {name}: {prob:.2f}%") |
|
|