Decoder erstellen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
nichtSoGuter
User
Beiträge: 92
Registriert: Mittwoch 13. April 2022, 17:40

ich möchte eine Decoder mit der tensorflow klasse "tfa.seq2seq.BasicDecoder" schreiben. ich bin aber ein wenig am struggeln zu verstehen wie die Klasse funktioniert.
(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)
Antworten