d_g_deploy / app.py
marii8st's picture
Upload app.py
466813c verified
import gradio as gr
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.image import img_to_array
from PIL import Image
import numpy as np
# Загрузка модели
model = load_model("digit_recognizer_model.h5")
# Функция для обработки изображения и предсказания
def predict_digit(image):
# Преобразование изображения
image = image.convert("L") # Конвертация в градации серого
image = image.resize((28, 28)) # Изменение размера на 28x28
image = img_to_array(image) # Преобразование в numpy-массив
image = image.reshape(1, 28, 28, 1) # Преобразование в формат (1, 28, 28, 1)
image = image / 255.0 # Нормализация
# Предсказание
prediction = model.predict(image) # Получение вероятностей классов
predicted_class = np.argmax(prediction) # Класс с наибольшей вероятностью
return f"Предсказанное число: {predicted_class}"
# Интерфейс Gradio
interface = gr.Interface(
fn=predict_digit,
inputs=gr.Image(type="pil"), # Используем только `type="pil"` для передачи изображения
outputs="text", # Вывод в виде текста
title="Распознавание цифр"
)
# Запуск приложения
if __name__ == "__main__":
interface.launch()