ÎncepețiÎncepe gratuit

Preprocesarea datelor

Acum trebuie să procesezi datele pentru noul nostru model, care are două intrări și o singură ieșire. Cele două intrări sunt cuvintele englezești codificate one-hot și cuvintele franceze codificate one-hot, cu excepția ultimului cuvânt.

Ieșirea va fi cuvintele franceze codificate one-hot, cu excepția primului cuvânt. Cu alte cuvinte, în decoder, fiecare cuvânt francez de intrare are o ieșire corespunzătoare – și anume cuvântul următor. Aici vei învăța cum să implementezi acest lucru.

Ți-au fost furnizate funcția sents2seqs(), en_text și fr_text.

Acest exercițiu face parte din cursul

Traducere automată cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Obține un lot de intrări pentru encoder (de la i la i+bsize) folosind funcția sents2seqs() (codificate one-hot și inversate).
  • Obține un lot de intrări și ieșiri pentru decoder (de la i la i+bsize) folosind funcția sents2seqs() (codificate one-hot).
  • Separă intrările decoderului (toate cuvintele franceze cu excepția ultimului) din de_xy prin tăiere pe dimensiunea temporală.
  • Separă ieșirile decoderului (toate cuvintele franceze cu excepția primului) din de_xy.

Exercițiu interactiv practic

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

bsize = 250
for i in range(0, len(en_text), bsize):
  # Get the encoder inputs using the sents2seqs() function
  en_x = ____('source', ____[____:____], onehot=True, reverse=____)
  # Get the decoder inputs/outputs using the sents2seqs() function
  de_xy = sents2seqs('target', ____[____:____], onehot=True)
  # Separate the decoder inputs from de_xy
  de_x = de_xy[:,____,:]
  # Separate the decoder outputs from de_xy
  de_y = de_xy[:,____,:]
  
  print("Data from ", i, " to ", i+bsize)
  print("\tnp.argmax() => en_x[0]: ", np.argmax(en_x[0], axis=-1))
  print("\tnp.argmax() => de_x[0]: ", np.argmax(de_x[0], axis=-1))
  print("\tnp.argmax() => de_y[0]: ", np.argmax(de_y[0], axis=-1))
Editează și rulează codul