(siehe Code unten)
Frage 1: wieso hat die instanz "decoder" 3 outputs. Der "output_layer" ist doch ein Dense layer mit "output_vocab_size = 64" units.
Frage 2: ich verstehe die übergebenen Parameter "sequence_length" und "initial_state" für die "decoder" instanz nicht. Diese sind in der description in tensorflow nicht aufgeführt. Attribute sind das wohl nicht? was sind das aber dann für Parameter?
Vielen Dank im Voraus für Antworten!
Code: Alles auswählen
batch_size = 4
max_time = 7
hidden_size = 32
embedding_size = 48
input_vocab_size = 128
output_vocab_size = 64
embedding_layer = tf.keras.layers.Embedding(input_vocab_size, embedding_size)
input_ids = tf.random.uniform(
[batch_size, max_time], maxval=input_vocab_size, dtype=tf.int64)
# inputs für die initialisierung der tfa.seq2seq.BasicDecoder instanz wird erstellt
decoder_cell = tf.keras.layers.LSTMCell(hidden_size)
sampler = tfa.seq2seq.TrainingSampler()
output_layer = tf.keras.layers.Dense(output_vocab_size)
# instanz selbst wird erstellt
decoder = tfa.seq2seq.BasicDecoder(decoder_cell, sampler, output_layer)
# zu übergebene Parameter für die instanz wird erstellt
input_lengths = tf.fill([batch_size], max_time)
input_tensors = embedding_layer(input_ids)
initial_state = decoder_cell.get_initial_state(input_tensors)
# FRAGE 1: wieso hat "decoder" 3 outputs
# FRAGE 2: übergebene Parameter "sequence_length" und "initial_state" für die "decoder" instanz in der description in tensorflow nicht aufgeführt. was sind das für Parameter? Attribute sind das wohl nicht? was sind diese Parameter aber dann?
output, state, lengths = decoder(
input_tensors, sequence_length=input_lengths, initial_state=initial_state)