|
import streamlit as st
|
|
from transformers import DistilBertTokenizer, TFDistilBertForSequenceClassification
|
|
import tensorflow as tf
|
|
|
|
|
|
model_path = 'drive-download-20241117T174204Z-001/'
|
|
loaded_model = TFDistilBertForSequenceClassification.from_pretrained(model_path)
|
|
loaded_tokenizer = DistilBertTokenizer.from_pretrained(model_path)
|
|
|
|
|
|
def predict_with_loaded_model(in_sentences):
|
|
labels = ["non-stress", "stress"]
|
|
inputs = loaded_tokenizer(in_sentences, return_tensors="tf", padding=True, truncation=True, max_length=512)
|
|
predictions = loaded_model(inputs)
|
|
predicted_labels = tf.argmax(predictions.logits, axis=-1).numpy()
|
|
predicted_probs = tf.nn.softmax(predictions.logits, axis=-1).numpy()
|
|
|
|
return [{"text": sentence, "confidence": probs.tolist(), "label": labels[label]} for sentence, label, probs in zip(in_sentences, predicted_labels, predicted_probs)]
|
|
|
|
|
|
st.title("Stress Prediction with DistilBERT")
|
|
|
|
|
|
user_input = st.text_area("Enter a sentence or text:", "")
|
|
|
|
|
|
if st.button("Predict"):
|
|
if user_input:
|
|
|
|
prediction = predict_with_loaded_model([user_input])[0]
|
|
st.write(f"Text: {prediction['text']}")
|
|
st.write(f"Prediction: {prediction['label']}")
|
|
st.write(f"Confidence: {prediction['confidence']}")
|
|
else:
|
|
st.write("Please enter a sentence to predict.")
|
|
|