Download app.py from anandhu-pk/Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis: direct link, hf CLI and curl.
- Browser
- Download file 6.76 kB
-
https://huggingface.co/anandhu-pk/Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis/resolve/main/app.py
- Command line
-
hf download hf://anandhu-pk/Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis/app.py
-
curl -L -o app.py https://huggingface.co/anandhu-pk/Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis/resolve/main/app.py
6.76 kB
| import streamlit as st | |
| import pickle | |
| import tensorflow as tf | |
| from tensorflow.keras.preprocessing import sequence | |
| from tensorflow.keras.saving import load_model | |
| import numpy as np | |
| import cv2 | |
| from PIL import Image | |
| st.title('Classifier System') | |
| task = st.selectbox('Select Task', ['Choose one','Sentiment Classification', 'Tumor Detection']) | |
| if task=='Tumor Detection': | |
| st.subheader('Tumor Detection with CNN') | |
| # CNN | |
| #with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\CNN\cnn_model.pkl",'rb') as file: | |
| #cnn_model = pickle.load(file) | |
| cnn_model = load_model(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\CNN\cnn_model1.h5") | |
| img = st.file_uploader('Upload image', type=['jpeg', 'jpg', 'png']) | |
| def cnn_make_prediction(img,model): | |
| img=Image.open(img) | |
| img=img.resize((128,128)) | |
| img=np.array(img) | |
| input_img = np.expand_dims(img, axis=0) | |
| res = model.predict(input_img) | |
| if res: | |
| return "Tumor Detected" | |
| else: | |
| return "No Tumor Detected" | |
| if img is not None: | |
| st.image(img, caption = "Image preview") | |
| if st.button('Submit'): | |
| pred = cnn_make_prediction(img, cnn_model) | |
| st.write(pred) | |
| if task=='Sentiment Classification': | |
| arcs = ['Perceptron', 'Backpropagation', 'DNN', 'RNN', 'LSTM'] | |
| arc = st.radio('Pick one:', arcs, horizontal=True) | |
| if arc == arcs[0]: | |
| # Perceptron | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\Perceptron\pnn_model.pkl",'rb') as file: | |
| perceptron = pickle.load(file) | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\Perceptron\pnn_tokeniser.pkl",'rb') as file: | |
| ppn_tokeniser = pickle.load(file) | |
| def ppn_make_predictions(inp, model): | |
| encoded_inp = ppn_tokeniser.texts_to_sequences([inp]) | |
| padded_inp = sequence.pad_sequences(encoded_inp, maxlen=500) | |
| res = model.predict(padded_inp) | |
| if res: | |
| return "Not spam" | |
| else: | |
| return "Spam" | |
| st.subheader('SMS spam Classification using Perceptron') | |
| inp = st.text_area('Enter message') | |
| if st.button('Check'): | |
| pred = ppn_make_predictions([inp], perceptron) | |
| st.write(pred) | |
| elif arc == arcs[1]: | |
| # BackPropogation | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\BackPropagation\bpn_model.pkl",'rb') as file: | |
| backprop = pickle.load(file) | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\BackPropagation\bpn_tokeniser.pkl",'rb') as file: | |
| bp_tokeniser = pickle.load(file) | |
| def bp_make_predictions(inp, model): | |
| encoded_inp = bp_tokeniser.texts_to_sequences([inp]) | |
| padded_inp = sequence.pad_sequences(encoded_inp, maxlen=500) | |
| res = model.predict(padded_inp) | |
| if res: | |
| return "Not spam" | |
| else: | |
| return "Spam" | |
| st.subheader('SMS spam Classification using Backpropagation') | |
| inp = st.text_area('Enter message') | |
| if st.button('Check'): | |
| pred = bp_make_predictions([inp], backprop) | |
| st.write(pred) | |
| elif arc == arcs[2]: | |
| # DNN | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\DNN\dnn_model.pkl",'rb') as file: | |
| dnn_model = pickle.load(file) | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\DNN\dnn_tokeniser.pkl",'rb') as file: | |
| dnn_tokeniser = pickle.load(file) | |
| def dnn_make_predictions(inp, model): | |
| inp = dnn_tokeniser.texts_to_sequences(inp) | |
| inp = sequence.pad_sequences(inp, maxlen=500) | |
| res = (model.predict(inp) > 0.5).astype("int32") | |
| if res: | |
| return "Not spam" | |
| else: | |
| return "Spam" | |
| st.subheader('SMS spam Classification using DNN') | |
| inp = st.text_area('Enter message') | |
| if st.button('Check'): | |
| pred = dnn_make_predictions([inp], dnn_model) | |
| st.write(pred) | |
| elif arc == arcs[3]: | |
| # RNN | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\RNN\rnn_model.pkl",'rb') as file: | |
| rnn_model = pickle.load(file) | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\RNN\rnn_tokeniser.pkl",'rb') as file: | |
| rnn_tokeniser = pickle.load(file) | |
| def rnn_make_predictions(inp, model): | |
| encoded_inp = rnn_tokeniser.texts_to_sequences(inp) | |
| padded_inp = sequence.pad_sequences(encoded_inp, maxlen=10, padding='post') | |
| res = (model.predict(padded_inp) > 0.5).astype("int32") | |
| if res: | |
| return "Spam" | |
| else: | |
| return "Not spam" | |
| st.subheader('SMS Spam Classification using RNN') | |
| inp = st.text_area('Enter message') | |
| if st.button('Check'): | |
| pred = rnn_make_predictions([inp], rnn_model) | |
| st.write(pred) | |
| elif arc == arcs[4]: | |
| # LSTM | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\LSTM\lstm_model.pkl",'rb') as file: | |
| lstm_model = pickle.load(file) | |
| with open(r"E:\DUK\DUKSEM3\DEEP_LEARNING\ASSIGN1\Multi-Modal_classifier_Image_Classification_Sentiment_Sentiment_Analysis\LSTM\lstm_tokeniser.pkl",'rb') as file: | |
| lstm_tokeniser = pickle.load(file) | |
| def lstm_make_predictions(inp, model): | |
| inp = lstm_tokeniser.texts_to_sequences(inp) | |
| inp = sequence.pad_sequences(inp, maxlen=500) | |
| res = (model.predict(inp) > 0.5).astype("int32") | |
| if res: | |
| return "Not spam" | |
| else: | |
| return "Spam" | |
| st.subheader('SMS spam Classification using LSTM') | |
| inp = st.text_area('Enter message') | |
| if st.button('Check'): | |
| pred = lstm_make_predictions([inp], lstm_model) | |
| st.write(pred) |