MuhammadQasimShabbir3's picture
create app.py
3900b71 verified
Raw History Blame Contribute Delete
943 Bytes
import torch
import timm
from PIL import Image
from torchvision import transforms
from fastapi import FastAPI, File, UploadFile
import io
app = FastAPI()
# load model
model = timm.create_model("efficientnet_b7", pretrained=False, num_classes=2)
model.load_state_dict(torch.load("best_model.pth", map_location="cpu")["model_state_dict"])
model.eval()
transform = transforms.Compose([
transforms.Resize((224, 224)),
transforms.ToTensor(),
transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225])
])
def predict_image(image):
image = transform(image).unsqueeze(0)
with torch.no_grad():
output = model(image)
pred = torch.argmax(output, dim=1).item()
return "Real" if pred == 1 else "Fake"
@app.post("/predict")
async def predict(file: UploadFile = File(...)):
image = Image.open(io.BytesIO(await file.read())).convert("RGB")
result = predict_image(image)
return {"prediction": result}