import pickle import gradio as gr import tensorflow as tf from tensorflow.keras.layers import TextVectorization def sentiment_pred2(text): load_vectorizer = pickle.load(open("tv_layer.pkl", "rb")) new_vectorizer = TextVectorization.from_config(load_vectorizer['config']) # You have to call `adapt` with some dummy data (BUG in Keras) new_vectorizer.adapt(tf.data.Dataset.from_tensor_slices(["xyz"])) #some argues that it is not necessary new_vectorizer.set_weights(load_vectorizer['weights']) vectorized_text = new_vectorizer([text]) load_model = tf.keras.models.load_model('ar_sentiment_15_ep.h5') result = load_model.predict([vectorized_text]) pred = np.argmax(result[0])+1 labels = ["نص يعبر عن الاستياء","نص يعبر عن الحياد","نص يعبر عن الثناء"] print(pred) print(np.argmax(pred)) print(labels[np.argmax(pred)-1]) return (labels[np.argmax(pred)-1]) interface = gr.Interface(fn=sentiment_pred2, inputs=gr.inputs.Textbox(lines=2, placeholder='enter your text'), outputs=["text"]) interface.launch()