Definición del decodificador
En este ejercicio, implementarás el decodificador y definirás un modelo integral que va desde las entradas del codificador hasta las salidas GRU del decodificador. El decodificador utiliza el mismo modelo que el codificador. Sin embargo, existen diferencias en las entradas y los estados que se envían al decodificador, en comparación con el codificador. Por ejemplo, el decodificador consume el vector de contexto producido por el codificador como entradas, así como el estado inicial del decodificador. Recuerda que utilizaremos el prefijo en
(por ejemplo, en_gru
) para indicar cualquier cosa relacionada con el codificador y de
para indicar cosas relacionadas con el decodificador (por ejemplo, de_gru
).
Para implementar el decodificador, utilizarás las capas RepeatVector
y GRU
.
Para este ejercicio, se te ha proporcionado el modelo del codificador y las distintas capas del codificador que ya has implementado. Por ejemplo, las entradas del codificador se proporcionan como en_inputs
y el vector de contexto como en_state
. Ten en cuenta también que los objetos GRU
y Model
ya se han importado.
Este ejercicio forma parte del curso
Traducción automática con Keras
Instrucciones del ejercicio
- Define una capa «
RepeatVector
» que tome «en_state
» como entrada y la repita «fr_len
» veces. - Define una capa GRU,
decoder_gru
, que tiene unidades ocultas iguales ahsize
y devuelve todas las salidas producidas. - Obtén el resultado de la capa «
decoder_gru
» introduciendo «de_inputs
» como entrada y «en_state
» como estado inicial del decodificador. - Define un modelo que tome
en_inputs
como entrada ygru_outputs
como salida.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
from tensorflow.keras.layers import RepeatVector
hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()