Team Ai
Apppublic

Ethan0718/Homework04-Build_ML_workflow_for_image

sourceHugging Faceupdated 4y agoView on Hugging Face
0likes
app.py54 linesDownload Raw Back to root
1import gradio as gr2import pickle3 4input_module1 = gr.inputs.Image(label = "Input Image",image_mode='L', shape = (28,28)) #image_mode = "L" --> black and white pic,5input_module2 = gr.inputs.Dropdown(choices=["KNN", "LinearDiscriminantAnalysis", "QuadraticDiscriminantAnalysis", "GaussianNB"], label = "Methods")6 7output_module1 = gr.outputs.Textbox(label = "Predicted Class")8output_module2 = outputs=gr.Label(num_top_classes=10)9 10def Classification(input1,input2):11 12  class_names = ["T-shirt/top", "Trouser", "Pullover", "Dress", "Coat",13"Sandal", "Shirt", "Sneaker", "Bag", "Ankle boot"]14 15  image = input1.reshape(1, 28*28)16  with open('KNeighborsClassifier_model.sav', 'rb') as f:17    knn_model = pickle.load(f)18    19  with open('LinearDiscriminantAnalysis_model.sav', 'rb') as f:20    LDA_model = pickle.load(f)21    22  with open('QuadraticDiscriminantAnalysis_model.sav', 'rb') as f:23    QDA_model = pickle.load(f)24  25  with open('GaussianNB_model.sav', 'rb') as f:26    GaussianNB_model = pickle.load(f)27 28  if input2 == "KNN":29    predict = knn_model.predict(image)30    output1 = predict[0]31    32  elif input2 == "LinearDiscriminantAnalysis":33    predict = LDA_model.predict(image)34    output1 = predict[0]35 36  elif input2 == "QuadraticDiscriminantAnalysis":37    predict = QDA_model.predict(image)38    output1 = predict[0]39 40  elif input2 == "GaussianNB":41    predict = GaussianNB_model.predict(image)42    output1 = predict[0]43 44  confidences = {class_names[i]: 1 if i == output1 else 0 for i in range(len(class_names))}45  46  return class_names[output1],confidences 47 48gr.Interface(fn=Classification, 49             inputs = [input_module1, input_module2],50             outputs = [output_module1, output_module2],51             examples=[["bag.png","KNN"],["pullover.png","KNN"]],52             title = 'Homework04: Build ML workflow for image',53             description="Image classification.",54             ).launch()