File size: 2,731 Bytes
b881e33
bb5f8be
 
 
 
e1bbc3a
bb5f8be
 
 
 
 
 
 
 
 
 
48171eb
 
bb5f8be
 
 
 
 
99c17ae
0bbcaef
b881e33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cffd9a2
ae1ca1b
bc6d941
ae1ca1b
bc6d941
ae1ca1b
cffd9a2
ae1ca1b
cffd9a2
b881e33
 
 
5f111db
 
b881e33
bc6d941
b881e33
 
 
 
 
ae1ca1b
e9ba047
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
"""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))) 


app_examples = [
    ["A história do cientista americano J. Robert Oppenheimer e seu papel no desenvolvimento da bomba atômica."],
    
    ["Uma equipe de exploradores viaja através de um buraco de minhoca no espaço, na tentativa de garantir a sobrevivência da humanidade."],
    
    ["Os invesitgadores de atividades paranormais, Ed e Lorraine Warren, trabalham para ajudar a uma familia aterrorizada por uma escura presença na sua casa."],
    
    ["Depois de chegar a Normandía, um grupo de soldados precisa encontrar o único irmão vivo de três que morreram na guerra."],
    
    ["Gandalf e Aragorn lideram o Mundo dos Homens contra o exército de Sauron para desviar o olhar de Frodo e Sam quando eles se aproximam á Montanha da Perdição com o Um Anel."]
    
]

app_title = "Movie Genre Classifier"

inputs = [
    gr.Textbox(label="Text", value=app_examples[0][0]),

]


label = gr.outputs.Label(num_top_classes=4)
iface = gr.Interface(fn=classify_movie_genre, inputs=inputs, outputs=label, examples=app_examples)
iface.launch()