# import gradio as gr # import pickle # from sklearn.neighbors import KNeighborsClassifier # from sklearn.linear_model import LogisticRegression # from keras.models import Sequential # from keras.layers import Dense # from sklearn.pipeline import Pipeline # from sklearn.svm import LinearSVC # from sklearn.tree import DecisionTreeClassifier # from sklearn.ensemble import RandomForestClassifier # import tensorflow as tf # import sklearn # import tensorflow # from tensorflow import keras # from tensorflow.keras.models import load_model # input_1 = gr.Image(shape=(28,28),image_mode='L') # input_2 = gr.Dropdown(["SoftMax", "KNN", "Deep Neural Network", "Decision Tree", "Random Forest"]) # output = gr.Label(num_top_classes=6) # def predict_softmax(test_img): # Softmax_model = pickle.load(open('softmax_model.pkl', 'rb')) # predictions = Softmax_model.predict_proba(test_img) # return {i: float(predictions[0][i]) for i in range(0,10)} # def predict_knn(test_img): # Knn_model = pickle.load(open('knn_model.pkl', 'rb')) # predictions = Knn_model.predict_proba(test_img) # return {i: float(predictions[0][i]) for i in range(0,10)} # def predict_neural(test_img): # Neural_model = load_model("deep_neural_model.h5") # predictions = Neural_model.predict(test_img) # return {i: float(predictions[0][i]) for i in range(0,10)} # def predict_tree(test_img): # tree_model = pickle.load(open('tree_clf.pkl', 'rb')) # predictions = tree_model.predict_proba(test_img) # return {i: float(predictions[0][i]) for i in range(0,10)} # def predict_rf(test_img): # rf_model = pickle.load(open('rf_clf.pkl', 'rb')) # predictions = rf_model.predict_proba(test_img) # return {i: float(predictions[0][i]) for i in range(0,10)} # def predictDigitClass(test_img,chosen_model): # test_img_flatten=test_img.reshape(-1,28*28) # if chosen_model == "SoftMax": # fashionProbs = predict_softmax(test_img_flatten) # return fashionProbs # elif chosen_model == "KNN": # fashionProbs = predict_knn(test_img_flatten) # return fashionProbs # elif chosen_model == "Deep Neural Network": # fashionProbs = predict_neural(test_img_flatten) # return fashionProbs # elif chosen_model == "SVM": # fashionProbs = predict_svm(test_img_flatten) # return fashionProbs # elif chosen_model == "Decision Tree": # fashionProbs = predict_tree(test_img_flatten) # return fashionProbs # elif chosen_model == "Random Forest": # fashionProbs = predict_rf(test_img_flatten) # return fashionProbs # gr.Interface(fn=predictDigitClass,inputs=[input_1,input_2],outputs=output).launch(debug=True) import gradio as gr import pickle from sklearn.neighbors import KNeighborsClassifier from sklearn.linear_model import LogisticRegression from keras.models import Sequential from keras.layers import Dense from sklearn.pipeline import Pipeline from sklearn.svm import LinearSVC from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier import tensorflow as tf from tensorflow.keras.models import load_model input_1 = gr.Image(image_mode='L', type='numpy', preprocessing=lambda img: img.resize((28, 28))) input_2 = gr.Dropdown(["SoftMax", "KNN", "Deep Neural Network", "Decision Tree", "Random Forest"]) output = gr.Label(num_top_classes=6) def predict_softmax(test_img): Softmax_model = pickle.load(open('softmax_model.pkl', 'rb')) predictions = Softmax_model.predict_proba(test_img) return {i: float(predictions[0][i]) for i in range(0, 10)} def predict_knn(test_img): Knn_model = pickle.load(open('knn_model.pkl', 'rb')) predictions = Knn_model.predict_proba(test_img) return {i: float(predictions[0][i]) for i in range(0, 10)} def predict_neural(test_img): Neural_model = load_model("deep_neural_model.h5") predictions = Neural_model.predict(test_img) return {i: float(predictions[0][i]) for i in range(0, 10)} def predict_tree(test_img): tree_model = pickle.load(open('tree_clf.pkl', 'rb')) predictions = tree_model.predict_proba(test_img) return {i: float(predictions[0][i]) for i in range(0, 10)} def predict_rf(test_img): rf_model = pickle.load(open('rf_clf.pkl', 'rb')) predictions = rf_model.predict_proba(test_img) return {i: float(predictions[0][i]) for i in range(0, 10)} def predictDigitClass(test_img, chosen_model): test_img_flatten = test_img.reshape(-1, 28*28) if chosen_model == "SoftMax": fashionProbs = predict_softmax(test_img_flatten) return fashionProbs elif chosen_model == "KNN": fashionProbs = predict_knn(test_img_flatten) return fashionProbs elif chosen_model == "Deep Neural Network": fashionProbs = predict_neural(test_img_flatten) return fashionProbs elif chosen_model == "Decision Tree": fashionProbs = predict_tree(test_img_flatten) return fashionProbs elif chosen_model == "Random Forest": fashionProbs = predict_rf(test_img_flatten) return fashionProbs gr.Interface(fn=predictDigitClass, inputs=[input_1, input_2], outputs=output).launch(debug=True)