import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, LSTM, Dense, Dropout
from tensorflow.keras.callbacks import EarlyStopping
# Sample data placeholders (replace with actual data loading)
X_train = tf.random.uniform((1000, 100), maxval=10000, dtype=tf.int32)
y_train = tf.random.uniform((1000,), maxval=2, dtype=tf.int32)
X_val = tf.random.uniform((200, 100), maxval=10000, dtype=tf.int32)
y_val = tf.random.uniform((200,), maxval=2, dtype=tf.int32)
model = Sequential([
Embedding(input_dim=10000, output_dim=64, input_length=100),
LSTM(64, return_sequences=False),
Dropout(0.5),
Dense(32, activation='relu'),
Dropout(0.5),
Dense(1, activation='sigmoid')
])
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),
loss='binary_crossentropy',
metrics=['accuracy'])
early_stop = EarlyStopping(monitor='val_loss', patience=3, restore_best_weights=True)
history = model.fit(X_train, y_train, epochs=20, batch_size=32, validation_data=(X_val, y_val), callbacks=[early_stop])