anandhu-pk's picture
Upload 16 files
2ad4783
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)