Spaces:
Runtime error
Runtime error
from transformers import AutoModelForSequenceClassification,AutoTokenizer | |
from torch.nn.functional import softmax | |
import torch | |
import gradio as gr | |
import json | |
model_name="nebiyu29/hate_classifier" | |
tokenizer=AutoTokenizer.from_pretrained(model_name) | |
model=AutoModelForSequenceClassification.from_pretrained(model_name) | |
#this where the model is active and we need to make the gradiends in active | |
def model_classifier(text): | |
model.eval() | |
with torch.no_grad(): | |
if len(text)==0: | |
return f"the input text is {text}" | |
else: | |
encoded_input=tokenizer(text,return_tensors="pt",truncation=True,padding=True,max_length=512) #this is where the encoding happens | |
input_ids=encoded_input["input_ids"] | |
attention_mask=encoded_input["attention_mask"] | |
#turning the inputs into tensors | |
inputs_ids=torch.tensor(input_ids).unsqueeze(dim=0) | |
attention_mask=torch.tensor(attention_mask).unsqueeze(dim=0) | |
logits=model(input_ids,attention_mask).logits #this is the logits of the labels | |
probs_label=softmax(logits,dim=-1) #turning the probability distribution into normalize form | |
id2label=model.config.id2label | |
return_probs={id2label[i]:probs.item() for i,probs in enumerate(probs_label[0])} | |
return json.dumps(list(return_probs.items())) | |
#lets define how the output looks like | |
#output_format=gr.Dataframe(row_count=(3,"dynamic"),col_count=(2,"dynamic"),label="label probabilities",headers=["label","probabilities"]) | |
#the output looks like a json format | |
output_format=gr.Textbox(label="label probabilities") | |
#lets write something that accepts input as text and returns the most likely out come out of 3 | |
demo=gr.Interface( | |
fn=model_classifier, | |
inputs=gr.Textbox(lines=5,label="Enter you text"), | |
outputs=output_format, | |
title="Hate Classifier Demo App" | |
) | |
demo.launch(share=True) |