EagleOfEmpire's picture
Creating app.py
d88070f verified
raw
history blame
1.99 kB
import gradio as gr
import tensorflow as tf
import numpy as np
# ----------------------------------------------------
# ЗАГРУЗКА МОДЕЛИ
# ----------------------------------------------------
# Предполагается, что модель сохранена в папке "model"
model = tf.keras.models.load_model("model")
# Если вы использовали токенизатор (например Keras Tokenizer),
# загрузите его из pickle
import pickle
with open("tokenizer.pkl", "rb") as f:
tokenizer = pickle.load(f)
# Метки классов
EMOTIONS = ["neutral", "joy", "sadness", "anger", "fear", "surprise"]
# поменяйте на свои реальные метки
# ----------------------------------------------------
# ФУНКЦИЯ ПРЕДСКАЗАНИЯ
# ----------------------------------------------------
def predict(text):
# Преобразуем текст в sequence
seq = tokenizer.texts_to_sequences([text])
# Паддинг — на ту длину, на которой обучалась модель
padded = tf.keras.preprocessing.sequence.pad_sequences(seq, maxlen=100)
# Получаем предсказание
preds = model.predict(padded)[0]
# Находим класс
emotion_idx = np.argmax(preds)
emotion = EMOTIONS[emotion_idx]
# Вернём все вероятности (удобно для вывода)
return {EMOTIONS[i]: float(preds[i]) for i in range(len(EMOTIONS))}
# ----------------------------------------------------
# GRADIO UI
# ----------------------------------------------------
iface = gr.Interface(
fn=predict,
inputs=gr.Textbox(label="Введите текст"),
outputs=gr.Label(num_top_classes=6, label="Эмоции"),
title="Emotion Classification",
description="Классификация эмоций по тексту с использованием Keras модели"
)
iface.launch()