File size: 966 Bytes
b9ea15d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
from fastapi import FastAPI, UploadFile, File
from transformers import AutoModelForImageClassification, AutoProcessor
from PIL import Image
import torch
app = FastAPI()
# Carga el modelo y el preprocesador desde Hugging Face
model_name = "jazzmacedo/fruits-and-vegetables-detector-36"
model = AutoModelForImageClassification.from_pretrained(model_name)
processor = AutoProcessor.from_pretrained(model_name)
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
# Procesa la imagen recibida
image = Image.open(file.file).convert("RGB")
inputs = processor(images=image, return_tensors="pt")
# Realiza la predicción
with torch.no_grad():
outputs = model(**inputs)
# Obtiene la predicción con mayor probabilidad
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
predicted_class_name = model.config.id2label[predicted_class_idx]
return {"prediction": predicted_class_name}
|