Spaces:
Sleeping
Sleeping
import os | |
from tqdm.auto import tqdm | |
from PIL import Image | |
import torch | |
import torch.nn as nn | |
from torchvision import models, transforms | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
transform = transforms.Compose([ | |
transforms.Resize((224, 224)), | |
transforms.ToTensor() | |
]) | |
def preprocess_image(image_path): | |
img = Image.open(image_path).convert('RGB') | |
processed_img = transform(img) | |
return processed_img | |
def create_resnet18_model(): | |
model = models.resnet18(weights=models.ResNet18_Weights.IMAGENET1K_V1) | |
modules = list(model.children())[:-1] | |
model = nn.Sequential(*modules) | |
return model | |
def extract_features(model, processed_image): | |
input = processed_image.unsqueeze(dim=0).to(device) | |
model.eval() | |
with torch.inference_mode(): | |
prediction = model(input) | |
return prediction.squeeze().tolist() | |