pinkieseb's picture
Upload app.py with huggingface_hub
027b8fc verified
from transformers import AutoFeatureExtractor, EfficientNetForImageClassification
import torch
from PIL import Image
import io
import base64
def pipeline(image_bytes):
image = Image.open(io.BytesIO(base64.b64decode(image_bytes))).convert('RGB')
feature_extractor = AutoFeatureExtractor.from_pretrained(".")
model = EfficientNetForImageClassification.from_pretrained(".")
# Replace the classification head with a regression head
model.classifier = torch.nn.Linear(model.classifier.in_features, 1)
# Load the custom weights
model.load_state_dict(torch.load("model.pt", map_location=torch.device('cpu')))
model.eval()
inputs = feature_extractor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
prediction = outputs.logits.item() # For regression, we directly use the output
return {"prediction": float(prediction)}
def run(raw_image_bytes):
return pipeline(raw_image_bytes)