Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Definuj vrstvu Input pro vstup s velikostí slovníku en_vocab a délkou sekvence en_len pomocí argumentu shape.
  • Definuj vrstvu keras.layers.GRU s hsize skrytými jednotkami, která vrací svůj stav.
  • Získej výstupy z vrstvy GRU tak, že jí předáš en_inputs, stav GRU ulož do en_state a výstup do en_out.
  • Definuj keras.models.Model, jehož vstupem je en_inputs a výstupem en_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.____)
Upravit a spustit kód