Spaces:
Running
Running
import torch | |
import torchvision | |
from torchvision.models import efficientnet_v2_s, EfficientNet_V2_S_Weights | |
from torch import nn | |
from PIL import Image | |
from model import create_effnet_v2_model | |
class_names = ['Honda', 'Hyundai', 'Toyota'] | |
effnet_v2, transforms = create_effnet_v2_model(num_classes=len(class_names), weights_path="efficient_net_s_carvision_3.pth") | |
def predict(model, image_path, device): | |
image = Image.open(image_path) | |
image = transforms(image).unsqueeze(0) | |
image = image.to(device) | |
output = model(image) | |
model.eval() | |
with torch.inference_mode(): | |
probs = torch.softmax(output, dim=1) | |
pred_labels_and_probs = {class_names[i]: float(probs[0, i]) for i in range(len(class_names))} | |
return pred_labels_and_probs | |
print(predict(effnet_v2, "examples/Toyota_Tacoma_2017_36_18_270_35_6_75_70_212_19_RWD_5_4_Pickup_xQa.jpg", torch.device("cpu"))) | |
# print(predict(effnet_v2, "test.jpg", torch.device("cuda:0"))) |