ÎncepețiÎncepe gratuit

Definirea decodorului modelului de inferență

Modelul de inferență este cel care va fi utilizat în practică pentru a efectua traduceri la cererea utilizatorului. În acest exercițiu, va trebui să implementezi decodorul modelului de inferență.

Decodorul modelului de inferență este diferit față de decodorul modelului de antrenament. Nu putem alimenta decodorul cu cuvinte în franceză, deoarece tocmai acestea vrem să le prezicem. Din fericire, există o soluție: putem folosi cuvântul în franceză prezis la pasul de timp anterior pentru a alimenta decodorul modelului de inferență. Prin urmare, atunci când vrei să generezi o traducere, decodorul trebuie să producă un cuvânt pe rând, folosind ieșirea anterioară drept intrare.

Pentru acest exercițiu, variabilele hsize (dimensiunea ascunsă a stratului GRU), fr_len și fr_vocab au fost deja importate. Reține că prefixul de este folosit pentru a face referire la decodor.

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește un strat Input care acceptă un lot de secvențe de cuvinte franceze codificate one-hot (lungimea secvenței este 1).
  • Definește un alt strat Input care acceptă un lot de stări de dimensiune hsize, pe care îl vei folosi pentru a transmite starea anterioară decodorului.
  • Obține ieșirea și starea decodorului GRU.
  • Definește un model care acceptă intrarea cuvintelor franceze Input și intrarea stării anterioare Input, și returnează predicția finală împreună cu noua stare GRU.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

import tensorflow.keras.layers as layers
from tensorflow.keras.models import Model
# Define an input layer that accepts a single onehot encoded word
de_inputs = layers.____(shape=(____, ____))
# Define an input to accept the t-1 state
de_state_in = layers.____(shape=(____,))
de_gru = layers.GRU(hsize, return_state=True)
# Get the output and state from the GRU layer
de_out, de_state_out = ____(de_inputs, initial_state=____)
de_dense = layers.Dense(fr_vocab, activation='softmax')
de_pred = de_dense(de_out)

# Define a model
decoder = Model(inputs=[____, ____], outputs=[____, ____])
print(decoder.summary())
Editează și rulează codul