Test1 / app.py
SEARO1's picture
Update app.py
ffdd436 verified
import gradio as gr
from transformers import AutoModelForImageClassification, AutoImageProcessor
from PIL import Image
import torch
model_id = "SEAR01/FER_model"
try:
processor = AutoImageProcessor.from_pretrained(model_id)
model = AutoModelForImageClassification.from_pretrained(model_id, trust_remote_code=True) # 加這行允許自訂模型
except Exception as e:
raise ValueError(f"Model load failed: {e}. Check repo files.")
emotion_labels = ['angry', 'disgust', 'fear', 'happy', 'neutral', 'sad', 'surprise']
def predict_emotion(image):
if image is None:
return "Upload an image."
inputs = processor(images=image, return_tensors="pt")
with torch.no_grad():
outputs = model(**inputs)
predicted = outputs.logits.argmax(-1).item()
emotion = emotion_labels[predicted]
confidence = torch.softmax(outputs.logits, dim=-1)[0][predicted].item()
return f"Emotion: {emotion} (Confidence: {confidence:.2f})"
iface = gr.Interface(fn=predict_emotion, inputs=gr.Image(type="pil"), outputs="text", title="FER Demo")
if __name__ == "__main__":
iface.launch()