Downloads · 30 days
0
sridharnayak007/seqtoseq
seqtoseq 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 from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, LSTM, Embedding, Dense from tensorflow.keras.preprocessing.sequence import padsequences
Downloads · 30 days
0
Access
Public
Updated Nov 16, 2024
Repo size
—
Likes
0
Public
Click a slice to open those files.
.md2.1 KB · 58%
From the Hugging Face model README
import numpy as np from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, LSTM, Embedding, Dense from tensorflow.keras.preprocessing.sequence import pad_sequences
embedding_dim = 256 lstm_units = 512 max_seq_length = 20 vocab_size_source = 5000 # Adjust to 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()
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) # Add extra dimension for loss function
batch_size = 64 model.fit( [encoder_input_data, decoder_input_data], decoder_output_data, batch_size=batch_size, epochs=10, validation_split=0.2 )
model.save("seq2seq_model.h5")