File size: 1,367 Bytes
71937e2 583825a 71937e2 fdd5b20 71937e2 fdd5b20 71937e2 |
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 |
from json import load
import gradio as gr
import tensorflow as tf
import numpy as np
input_module1 = gr.Image(label = "test_image", image_mode='L')
input_module2 = gr.Dropdown(choices=['KNN', 'Softmax'], label = "Select Algorithm")
output_module1 = gr.Textbox(label = "Predicted Class")
output_module2 = gr.Label(label = "Predict Probability")
def fashion_images(input1, input2):
from PIL import Image
img_pil = Image.fromarray(input1)
img_28x28 = np.array(img_pil.resize((28, 28), Image.ANTIALIAS))
numpy_image = img_28x28.reshape(1, 28*28) # this will reshape input image into numpy array with shape (1, 784)
print("numpy_image: ", numpy_image.shape)
if input2 == "KNN":
model = joblib.load('best_knn_model.joblib')
else:
model = joblib.load('best_logistic_model.joblib')
out = model.predict(numpy_image)[0]
out_prob = model.predict_proba(numpy_image)[0]
print("out: ",out)
print("out_prob: ",out_prob.shape)
class_names = ["T-shirt/top", "Trouser", "Pullover", "Dress", "Coat", "Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot"]
final = class_names[out]
class_prob = { class_names[i]:prob for i, prob in enumerate(out_prob)}
return final, class_prob
gr.Interface(fn=fashion_images, inputs=[input_module1, input_module2], outputs=[output_module1,output_module2]).launch(debug=True) |