Spaces:
Runtime error
Runtime error
import gradio as gr | |
import numpy as np | |
from transformers import pipeline | |
from model import DepressionClassifier | |
import hopsworks | |
import joblib | |
import torch | |
from huggingface_hub import hf_hub_download | |
import transformers | |
from transformers import BertModel, BertTokenizer | |
from PIL import Image | |
import requests | |
import io | |
class_names = ['Not Depressed', 'Depressed'] | |
pt_file = hf_hub_download(repo_id="liangc40/sentimental_analysis", filename="model.pt") | |
model = DepressionClassifier(len(class_names), 'bert-base-cased') | |
model.load_state_dict(torch.load(pt_file, map_location=torch.device('cpu'))) | |
model.eval() | |
#pipe = pipeline(model="liangc40/sentimental_analysis") | |
#project = hopsworks.login(project='liangc40') | |
#fs = project.get_feature_store() | |
#mr = project.get_model_registry() | |
#model = mr.get_model("sentimental_analysis_model", version=1) | |
#model_dir = model.download() | |
#model = joblib.load(model_dir + "/sentimental_analysis_model.pkl") | |
def analyse(text): | |
#text = "I'm depressed" | |
#model = model.to('cpu') | |
tokenizer = BertTokenizer.from_pretrained('bert-base-cased') | |
encoding = tokenizer.encode_plus(text, max_length=32, add_special_tokens=True, # Add '[CLS]' and '[SEP]' | |
return_token_type_ids=False, | |
pad_to_max_length=True, | |
return_attention_mask=True, | |
return_tensors='pt') | |
outputs = model(input_ids = encoding['input_ids'], attention_mask = encoding['attention_mask']) | |
_, preds = torch.max(outputs, dim=1) | |
face_url = "https://raw.githubusercontent.com/liangc40/ID2223_Sentimental_Analysis_Project/main/Image/"+ str(preds) + ".png" | |
r = requests.get(face_url, stream=True) | |
img = Image.open(io.BytesIO(r.content)) | |
#img = Image.open(requests.get(face_url, stream=True).raw) | |
#print(preds) | |
return img | |
with gr.Blocks() as demo: | |
gr.Markdown("<h1><center>Sentiment Analysis with Fine-tuned BERT Model") | |
inputs_text=gr.Textbox(placeholder='Type your text for which you want know the sentiment', label='Text') | |
text_button = gr.Button('Analyse Sentiment') | |
output_text_sentiment = gr.Textbox(placeholder='Sentiment of the text.', label='Sentiment') | |
text_button.click(analyse, inputs = inputs_text, outputs = output_text_sentiment) | |
if __name__ == "__main__": | |
demo.launch() |