tclopess's picture
Update app.py
cbe02cc verified
raw
history blame
2.7 kB
"""import gradio as gr
import onnxruntime as rt
from transformers import AutoTokenizer
import torch, json
tokenizer = AutoTokenizer.from_pretrained("neuralmind/bert-large-portuguese-cased")
with open("genre_types_encoded.json", "r") as fp:
encode_genre_types = json.load(fp)
genres = list(encode_genre_types.keys())
inf_session = rt.InferenceSession('movie-classifier-quantized.onnx')
input_name = inf_session.get_inputs()[0].name
output_name = inf_session.get_outputs()[0].name
def classify_movie_genre(sinopse):
input_ids = tokenizer(sinopse)['input_ids'][:512]
logits = inf_session.run([output_name], {input_name: [input_ids]})[0]
logits = torch.FloatTensor(logits)
probs = torch.sigmoid(logits)[0]
return dict(zip(genres, map(float, probs)))
label = gr.outputs.Label(num_top_classes=5)
iface = gr.Interface(fn=classify_movie_genre, inputs="text", outputs=label)
iface.launch(inline=False)"""
import gradio as gr
import onnxruntime as rt
from transformers import AutoTokenizer
import torch, json
tokenizer = AutoTokenizer.from_pretrained("neuralmind/bert-large-portuguese-cased")
with open("genre_types_encoded.json", "r") as fp:
encode_genre_types = json.load(fp)
genres = list(encode_genre_types.keys())
inf_session = rt.InferenceSession("movie-classifier-quantized.onnx")
input_name = inf_session.get_inputs()[0].name
output_name = inf_session.get_outputs()[0].name
def classify_movie_genre(sinopse):
input_ids = tokenizer(sinopse)["input_ids"][:512]
logits = inf_session.run([output_name], {input_name: [input_ids]})[0]
logits = torch.FloatTensor(logits)
probs = torch.sigmoid(logits)[0]
return dict(zip(genres, map(float, probs)))
label = gr.outputs.Label(num_top_classes=5)
sample_synopses = [
"Um grupo de amigos enfrenta um perigoso monstro sobrenatural em uma pequena cidade.", # Horror
"Um casal de detetives investiga uma série de assassinatos misteriosos em uma grande metrópole.", # Thriller
"Uma jovem embarca em uma jornada de autodescoberta em um mundo fantástico.", # Fantasy
"Um astronauta se esforça para sobreviver em uma missão espacial que deu errado.", # Sci-Fi
"Uma comédia romântica sobre duas pessoas que se apaixonam apesar de suas diferenças.", # Romance
]
iface = gr.Interface(
fn=classify_movie_genre,
inputs=[gr.Textbox(lines=5, label="Digite a sinopse do filme ou selecione um exemplo:")],
outputs=label,
)
# Add a dropdown menu of sample synopses
iface.components["inputs"][0].add_option(
"Exemplo de Sinopses",
sample_synopses,
value="Um grupo de amigos enfrenta um perigoso monstro sobrenatural em uma pequena cidade.",
)
iface.launch(inline=False)