Definición del codificador
Aquí darás el primer paso para crear un modelo de traducción automática: implementar el codificador. El codificador que vas a implementar es un modelo muy sencillo en comparación con los modelos complejos que se utilizan en aplicaciones reales, como el servicio de traducción automática de Google. Pero no te preocupes, aunque el modelo es sencillo, los conceptos son los mismos que los de los modelos complejos. Aquí 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
).
Verás que estamos eligiendo en_vocab
para que sea más pequeño (150) que el valor real (228) que hemos encontrado. Reducir el vocabulario reduce la huella de memoria del modelo. Reducir ligeramente el vocabulario está bien, ya que al hacerlo eliminamos las palabras más raras. En las tareas de traducción automática, las palabras poco frecuentes suelen tener menos valor que las palabras comunes.
Este ejercicio forma parte del curso
Traducción automática con Keras
Instrucciones del ejercicio
- Define una capa de red de vocabulario (
Input
) para una entrada que tiene un tamaño de vocabularioen_vocab
y una longitud de secuenciaen_len
, utilizando el argumentoshape
. - Define una capa de red neuronal (
keras.layers.GRU
) que tengahsize
unidades ocultas y devuelva su estado. - Obtén los resultados de la capa GRU introduciendo
en_inputs
y asigna el estado GRU aen_state
y el resultado aen_out
. - Define un
keras.models.Model
cuya entrada seaen_inputs
y la salida seaen_state
e imprime el resumen del modelo.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
import tensorflow.keras as keras
en_len = 15
en_vocab = 150
hsize = 48
# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)