Downloads · 30 days
0
sridharnayak007/lstm_model
lstm_model is a machine learning model from sridharnayak007. Use it for the machine learning task on the model card, and read the license before you ship it in a product.
import numpy as np import tensorflow as tf from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, LSTM, Embedding, Dense
Downloads · 30 days
0
Access
Public
Updated Nov 16, 2024
Repo size
—
Likes
0
Public
Click a slice to open those files.
.md2 KB · 57%
From the Hugging Face model README
import numpy as np import tensorflow as tf from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, LSTM, Embedding, Dense
embedding_dim = 256 lstm_units = 512 max_seq_length = 20 vocab_size_source = 5000 # Adjust based on your dataset vocab_size_target = 5000
encoder_inputs = Input(shape=(None,), name="encoder_inputs") encoder_embedding = Embedding(vocab_size_source, embedding_dim, mask_zero=True)(encoder_inputs) encoder_lstm = LSTM(lstm_units, return_state=True, name="encoder_lstm") encoder_outputs, state_h, state_c = encoder_lstm(encoder_embedding) encoder_states = [state_h, state_c]
decoder_inputs = Input(shape=(None,), name="decoder_inputs") decoder_embedding = Embedding(vocab_size_target, embedding_dim, mask_zero=True)(decoder_inputs) decoder_lstm = LSTM(lstm_units, return_sequences=True, return_state=True, name="decoder_lstm") decoder_outputs, _, _ = decoder_lstm(decoder_embedding, initial_state=encoder_states) decoder_dense = Dense(vocab_size_target, activation='softmax', name="decoder_dense") decoder_outputs = decoder_dense(decoder_outputs)
model = Model([encoder_inputs, decoder_inputs], decoder_outputs) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.summary()
batch_size = 64 num_samples = 10000
encoder_input_data = np.random.randint(1, vocab_size_source, (num_samples, max_seq_length)) decoder_input_data = np.random.randint(1, vocab_size_target, (num_samples, max_seq_length)) decoder_output_data = np.random.randint(1, vocab_size_target, (num_samples, max_seq_length))
decoder_output_data = np.expand_dims(decoder_output_data, -1)
model.fit( [encoder_input_data, decoder_input_data], decoder_output_data, batch_size=batch_size, epochs=10, validation_split=0.2 )
model.save("lstm_translator.h5")