Spaces:
Runtime error
Runtime error
| # AUTOGENERATED! DO NOT EDIT! File to edit: ../app.ipynb. | |
| # %% auto 0 | |
| __all__ = ['device', 'model', 'CLASS_LABELS', 'image', 'label', 'examples', 'intf', 'classify_emotions'] | |
| # %% ../app.ipynb 2 | |
| import gradio as gr | |
| import torch | |
| from torch.nn.functional import softmax | |
| import numpy as np | |
| from PIL import Image | |
| # %% ../app.ipynb 3 | |
| device = "cuda" if torch.cuda.is_available() else "cpu" | |
| model = torch.load('model.pth', map_location=torch.device('cpu')).to(device) | |
| model.eval() | |
| # %% ../app.ipynb 4 | |
| CLASS_LABELS = ['Anger', 'Disgust', 'Fear', 'Happy', 'Neutral', 'Sadness', "Surprise"] | |
| # %% ../app.ipynb 5 | |
| def classify_emotions(im): | |
| im = np.array(im) | |
| im = np.array(Image.fromarray(im).convert('L')) / 255 | |
| im = im[..., np.newaxis] | |
| im = np.concatenate((im, im, im), 2) | |
| im = torch.tensor(im.transpose(2, 0, 1), dtype=torch.float32) | |
| prediction = model.forward(im[np.newaxis, ...].to(device)) | |
| return dict(zip(CLASS_LABELS, *softmax(prediction, dim=1).tolist())) | |
| # %% ../app.ipynb 6 | |
| image = gr.inputs.Image((48, 48)) | |
| label = gr.outputs.Label() | |
| examples = ['happy.png', 'fear.png', 'anger.png'] | |
| intf = gr.Interface(fn=classify_emotions, | |
| inputs=image, | |
| outputs=label, | |
| title='Emotion classification', | |
| examples=examples) | |
| intf.launch(inline=False) | |