import streamlit as st import numpy as np from tensorflow.keras.models import load_model from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences import pickle # Load the LSTM model lstm_model = load_model('lstm.h5') # Load the Tokenizer used during training with open('tokenizer.pkl', 'rb') as tokenizer_file: tokenizer = pickle.load(tokenizer_file) # Define class labels and their numerical mapping class_mapping = {"Angry": 0, "Sad": 1, "Joy": 2, "Surprise": 3} numerical_to_label = {v: k for k, v in class_mapping.items()} st.title('Model Deployment') # Text input for the user to enter a sequence user_input = st.text_input('Enter a sequence:') if st.button('Predict'): # Tokenize and pad the user input sequence = tokenizer.texts_to_sequences([user_input]) padded_sequence = pad_sequences(sequence, maxlen=128) # Make predictions prediction = lstm_model.predict(padded_sequence) # Display the predicted probabilities and labels st.write('Predicted Probabilities:') for i in range(len(prediction[0])): label = numerical_to_label[i] st.write(f'{label}: {prediction[0][i]}')