Major issue with my Keras model
import streamlit as st
import tensorflow as tf
import keras
import numpy as np
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from textblob import TextBlob
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, Bidirectional, LSTM, Dense, Dropout, BatchNormalization
from tensorflow.keras.callbacks import EarlyStopping
from tensorflow.keras.regularizers import l2
from tensorflow.keras.optimizers import RMSprop
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.utils import to_categorical
import re
import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from sklearn.preprocessing import StandardScaler, LabelEncoder
from snorkel.labeling import labeling_function
from snorkel.labeling.model import LabelModel
from snorkel.labeling import PandasLFApplier
from snorkel.augmentation import transformation_function
from snorkel.augmentation import ApplyOnePolicy, PandasTFApplier
import random
from nltk.corpus import wordnet as wn
from nltk.sentiment import SentimentIntensityAnalyzer
nltk.download('vader_lexicon')
from transformers import pipeline
import pickle
import keras
from keras.models import load_model
# Load the pre-trained model from the .h5 file
# model_path = "model_11_72test.h5" # Best Performing - Currently Set
# model = load_model(model_path, custom_objects={'Embedding': keras.layers.Embedding}, compile=False)
# model_path = "model_11.keras" # Best Performing - Currently Set
# model = tf.keras.models.load_model(model_path)
model_path = "model_11.h5"
model = tf.keras.models.load_model(r'model_11.h5')
I am getting an error:
TypeError: <class ‘keras.src.models.sequential.Sequential’> could not be deserialized properly. Please ensure that components that are Python object instances (layers, models, etc.) returned by get_config()
are explicitly deserialized in the model’s from_config()
method.
config={‘module’: ‘keras’, ‘class_name’: ‘Sequential’, ‘config’: {‘name’: ‘sequential’, ‘layers’: [{‘module’: ‘keras.layers’, ‘class_name’: ‘InputLayer’, ‘config’: {‘batch_input_shape’: [None, None], ‘dtype’: ‘float32’, ‘sparse’: False, ‘ragged’: False, ‘name’: ‘embedding_input’}, ‘registered_name’: None}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Embedding’, ‘config’: {‘name’: ‘embedding’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘batch_input_shape’: [None, None], ‘input_dim’: 23100, ‘output_dim’: 100, ‘embeddings_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘RandomUniform’, ‘config’: {‘minval’: -0.05, ‘maxval’: 0.05, ‘seed’: None}, ‘registered_name’: None}, ‘embeddings_regularizer’: None, ‘activity_regularizer’: None, ‘embeddings_constraint’: None, ‘mask_zero’: False, ‘input_length’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, None]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Bidirectional’, ‘config’: {‘name’: ‘bidirectional’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘layer’: {‘module’: ‘keras.layers’, ‘class_name’: ‘LSTM’, ‘config’: {‘name’: ‘lstm’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘return_sequences’: True, ‘return_state’: False, ‘go_backwards’: False, ‘stateful’: False, ‘unroll’: False, ‘time_major’: False, ‘units’: 64, ‘activation’: ‘tanh’, ‘recurrent_activation’: ‘sigmoid’, ‘use_bias’: True, ‘kernel_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘GlorotUniform’, ‘config’: {‘seed’: None}, ‘registered_name’: None, ‘shared_object_id’: 5740828976}, ‘recurrent_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Orthogonal’, ‘config’: {‘gain’: 1.0, ‘seed’: None}, ‘registered_name’: None, ‘shared_object_id’: 5740828592}, ‘bias_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Zeros’, ‘config’: {}, ‘registered_name’: None, ‘shared_object_id’: 5740828304}, ‘unit_forget_bias’: True, ‘kernel_regularizer’: None, ‘recurrent_regularizer’: None, ‘bias_regularizer’: None, ‘activity_regularizer’: None, ‘kernel_constraint’: None, ‘recurrent_constraint’: None, ‘bias_constraint’: None, ‘dropout’: 0.0, ‘recurrent_dropout’: 0.0, ‘implementation’: 2}, ‘registered_name’: None}, ‘merge_mode’: ‘concat’}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, None, 100]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dropout’, ‘config’: {‘name’: ‘dropout’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘rate’: 0.1, ‘noise_shape’: None, ‘seed’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, None, 128]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Bidirectional’, ‘config’: {‘name’: ‘bidirectional_1’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘layer’: {‘module’: ‘keras.layers’, ‘class_name’: ‘LSTM’, ‘config’: {‘name’: ‘lstm_1’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘return_sequences’: False, ‘return_state’: False, ‘go_backwards’: False, ‘stateful’: False, ‘unroll’: False, ‘time_major’: False, ‘units’: 32, ‘activation’: ‘tanh’, ‘recurrent_activation’: ‘sigmoid’, ‘use_bias’: True, ‘kernel_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘GlorotUniform’, ‘config’: {‘seed’: None}, ‘registered_name’: None, ‘shared_object_id’: 5742419712}, ‘recurrent_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Orthogonal’, ‘config’: {‘gain’: 1.0, ‘seed’: None}, ‘registered_name’: None, ‘shared_object_id’: 5742423792}, ‘bias_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Zeros’, ‘config’: {}, ‘registered_name’: None, ‘shared_object_id’: 5742418992}, ‘unit_forget_bias’: True, ‘kernel_regularizer’: None, ‘recurrent_regularizer’: None, ‘bias_regularizer’: None, ‘activity_regularizer’: None, ‘kernel_constraint’: None, ‘recurrent_constraint’: None, ‘bias_constraint’: None, ‘dropout’: 0.0, ‘recurrent_dropout’: 0.0, ‘implementation’: 2}, ‘registered_name’: None}, ‘merge_mode’: ‘concat’}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, None, 128]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dropout’, ‘config’: {‘name’: ‘dropout_1’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘rate’: 0.1, ‘noise_shape’: None, ‘seed’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 64]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dense’, ‘config’: {‘name’: ‘dense’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘units’: 8, ‘activation’: ‘relu’, ‘use_bias’: True, ‘kernel_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘GlorotUniform’, ‘config’: {‘seed’: None}, ‘registered_name’: None}, ‘bias_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Zeros’, ‘config’: {}, ‘registered_name’: None}, ‘kernel_regularizer’: None, ‘bias_regularizer’: None, ‘activity_regularizer’: None, ‘kernel_constraint’: None, ‘bias_constraint’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 64]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dropout’, ‘config’: {‘name’: ‘dropout_2’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘rate’: 0.1, ‘noise_shape’: None, ‘seed’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 8]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dense’, ‘config’: {‘name’: ‘dense_1’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘units’: 8, ‘activation’: ‘relu’, ‘use_bias’: True, ‘kernel_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘GlorotUniform’, ‘config’: {‘seed’: None}, ‘registered_name’: None}, ‘bias_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Zeros’, ‘config’: {}, ‘registered_name’: None}, ‘kernel_regularizer’: None, ‘bias_regularizer’: None, ‘activity_regularizer’: None, ‘kernel_constraint’: None, ‘bias_constraint’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 8]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dropout’, ‘config’: {‘name’: ‘dropout_3’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘rate’: 0.1, ‘noise_shape’: None, ‘seed’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 8]}}, {‘module’: ‘keras.layers’, ‘class_name’: ‘Dense’, ‘config’: {‘name’: ‘dense_2’, ‘trainable’: True, ‘dtype’: ‘float32’, ‘units’: 10, ‘activation’: ‘softmax’, ‘use_bias’: True, ‘kernel_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘GlorotUniform’, ‘config’: {‘seed’: None}, ‘registered_name’: None}, ‘bias_initializer’: {‘module’: ‘keras.initializers’, ‘class_name’: ‘Zeros’, ‘config’: {}, ‘registered_name’: None}, ‘kernel_regularizer’: None, ‘bias_regularizer’: None, ‘activity_regularizer’: None, ‘kernel_constraint’: None, ‘bias_constraint’: None}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, 8]}}]}, ‘registered_name’: None, ‘build_config’: {‘input_shape’: [None, None]}, ‘compile_config’: {‘optimizer’: {‘module’: ‘keras.optimizers’, ‘class_name’: ‘Adam’, ‘config’: {‘name’: ‘Adam’, ‘weight_decay’: None, ‘clipnorm’: None, ‘global_clipnorm’: None, ‘clipvalue’: 0.5, ‘use_ema’: False, ‘ema_momentum’: 0.99, ‘ema_overwrite_frequency’: None, ‘jit_compile’: False, ‘is_legacy_optimizer’: False, ‘learning_rate’: {‘module’: ‘keras.optimizers.schedules’, ‘class_name’: ‘ExponentialDecay’, ‘config’: {‘initial_learning_rate’: 0.005, ‘decay_steps’: 10000, ‘decay_rate’: 0.7, ‘staircase’: True, ‘name’: None}, ‘registered_name’: None}, ‘beta_1’: 0.9, ‘beta_2’: 0.999, ‘epsilon’: 1e-07, ‘amsgrad’: False}, ‘registered_name’: None}, ‘loss’: ‘categorical_crossentropy’, ‘metrics’: [‘acc’, ‘mse’], ‘loss_weights’: None, ‘weighted_metrics’: None, ‘run_eagerly’: None, ‘steps_per_execution’: None, ‘jit_compile’: None}}.
Cannot figure out how to deploy my script and I have updated my requirements.txt file with the keras and tensorflow versions and still no luck. Anyone please help.