longdsp/prj
0
1import gradio as gr
2import tensorflow as tf
3import numpy as np
4from PIL import Image
5
6model = tf.keras.models.load_model('model.keras')
7
8CLASS_NAMES = ['Самолет', 'Автомобиль', 'Птица', 'Кошка', 'Олень',
9 'Собака', 'Лягушка', 'Лошадь', 'Корабль', 'Грузовик']
10
11def predict_image(img):
12 if img is None:
13 return "Пожалуйста, загрузите изображение."
14
15 img = Image.fromarray(img.astype('uint8'), 'RGB')
16 img = img.resize((32, 32))
17
18 img_array = np.array(img) / 255.0
19 img_array = np.expand_dims(img_array, axis=0)
20
21 predictions = model.predict(img_array)[0]
22
23 results = {CLASS_NAMES[i]: float(predictions[i]) for i in range(10)}
24 return results
25
26interface = gr.Interface(
27 fn=predict_image,
28 inputs=gr.Image(),
29 outputs=gr.Label(num_top_classes=3),
30 title="Классификатор изображений CIFAR-10",
31 description="Загрузите любое изображение, и обученная сверточная нейросеть определит его класс."
32)
33
34if __name__ == "__main__":
35 interface.launch()