Definování enkodéru
V tomto cvičení uděláš první krok k vytvoření modelu pro strojový překlad: implementuješ enkodér. Enkodér, který budeš implementovat, je ve srovnání se složitými modely používanými v praxi — například v překladači Google — velmi jednoduchý. Ale neboj se, i přes svou jednoduchost stojí na stejných principech jako ty složitější. Prefix en (např. en_gru) budeme používat pro vše, co se týká enkodéru, a de pro části dekodéru (např. de_gru).
Všimni si, že hodnota en_vocab je nastavena na 150, což je méně než skutečná hodnota 228, kterou jsme zjistili. Menší slovník snižuje paměťové nároky modelu. Toto mírné zmenšení nevadí, protože odstraňujeme pouze ta nejméně častá slova. V úlohách strojového překladu mají vzácná slova obvykle menší hodnotu než slova běžná.
Toto cvičení je součástí kurzu
Machine Translation with Keras
Pokyny k cvičení
- Definuj vrstvu
Inputpro vstup s velikostí slovníkuen_vocaba délkou sekvenceen_lenpomocí argumentushape. - Definuj vrstvu
keras.layers.GRUshsizeskrytými jednotkami, která vrací svůj stav. - Získej výstupy z vrstvy GRU tak, že jí předáš
en_inputs, stav GRU ulož doen_statea výstup doen_out. - Definuj
keras.models.Model, jehož vstupem jeen_inputsa výstupemen_state, a vypiš shrnutí modelu.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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.____)