Die Kernbausteine sind RNN-Encoder-Decoder-Architekturen und Aufmerksamkeitsmechanismus.
Das Paket wurde größtenteils mit den neuesten (1.2) tf.contrib.seq2Seq -Modulen implementiert
Das Paket unterstützt
Um die rohen parallele Daten von sample_data.src und sample_data.trg vorzubereiten, laufen Sie einfach aus
cd data /
. / preprocess . sh src trg sample_data $ { max_seq_len }Das Ausführen des obigen Codes führt weit verbreitete Vorverarbeitungsschritte für die maschinelle Übersetzung (MT) durch.
Ein SEQ2SEQ -Modell zu trainieren,
$ python train . py -- cell_type 'lstm'
-- attention_type 'luong'
-- hidden_units 1024
-- depth 2
-- embedding_size 500
-- num_encoder_symbols 30000
-- num_decoder_symbols 30000 ...Das geschulte Modell für die Dekodierung durchführen,
$ python decode . py -- beam_width 5
-- decode_batch_size 30
-- model_path $PATH_TO_A_MODEL_CHECKPOINT ( e . g . model / translate . ckpt - 100 )
-- max_decode_step 300
-- write_n_best False
-- decode_input $PATH_TO_DECODE_INPUT
-- decode_output $PATH_TO_DECODE_OUTPUT
Wenn --beam_width=1 , wird zu jedem Zeitschritt eine gierige Dekodierung durchgeführt.
Datenparameter
--source_vocabulary : Pfad zum Quellenvokabular--target_vocabulary : Pfad zum Zielvokabular--source_train_data : Pfad zur Quellentrainingsdaten--target_train_data : Pfad zu zielgerichteten Trainingsdaten--source_valid_data : Pfad zur Quellvalidierungsdaten--target_valid_data : Pfad zu ZielvalidierungsdatenNetzwerkparameter
--cell_type : RNN-Zelle für Encoder und Decoder (Standard: LSTM)--attention_type : Aufmerksamkeitsmechanismus (Bahdanau, Luong), (Standard: Bahdanau)--depth : Anzahl der versteckten Einheiten für jede Schicht im Modell (Standardeinstellung: 2)--embedding_size : Einbettungsdimensionen von Encoder- und Decodereingängen (Standardeinstellung: 500)--num_encoder_symbols : Quellvokabulargröße zu verwenden (Standard: 30000)--num_decoder_symbols : Zielvokabulargröße zu verwenden (Standard: 30000)--use_residual : Verwenden Sie die verbleibende Verbindung zwischen den Schichten (Standard: True)--attn_input_feeding : Verwenden Sie die Eingabe-Fütterungsmethode im Aufmerksamkeitsdecoder (Luong et al., 2015) (Standard: TRUE)--use_dropout : Verwenden Sie Dropout in RNN Cell Output (Standard: TRUE)--dropout_rate : Dropout-Wahrscheinlichkeit für Zellausgänge (0,0: kein Tropfen) (Standard: 0,3)Trainingsparams
--learning_rate : Anzahl der verborgenen Einheiten für jede Schicht im Modell (Standard: 0,0002)--max_gradient_norm : Clip-Gradienten zu dieser Norm (Standard 1.0)--batch_size : Stapelgröße--max_epochs : Maximale Trainingsspochs--max_load_batches : Maximale Anzahl von Stapeln, die gleichzeitig vorgegeben werden sollen.--max_seq_length : maximale Sequenzlänge--display_freq : Zeigen Sie den Trainingsstatus bei jeder Iteration an--save_freq : Modell Checkpoint für das Modell bei jeder Iteration speichern--valid_freq : Bewerten Sie das Modell in jeder dieser Iteration: Valid_data benötigt--optimizer : Optimierer für das Training: (Adadelta, Adam, RMSProp) (Standard: Adam)--model_dir : Pfad zum Speichern von Modellkontrollpunkten--model_name : Dateiname für Modell-Checkpoints verwendet--shuffle_each_epoch : Shuffle-Trainingsdatensatz für jede Epoche (Standard: True)--sort_by_length : Sortieren Sie vorgeholte Minibatches nach ihren Zielsequenzlängen (Standard: True)Dekodierungsparameter
--beam_width : Strahlbreite in BeamSearch verwendet (Standard: 1)--decode_batch_size : Stapelgröße bei der Dekodierung verwendet--max_decode_step : Maximale Zeitschrittbegrenzung in der Dekodierung (Standard: 500)--write_n_best : Schreiben Sie BeamSearch N-Best-Liste (n = Beam_width) (Standard: Falsch)--decode_input : Eingabedatei-Pfad zum Dekodieren--decode_output : Ausgabedateipfad der DekodierungsausgabeLaufzeitparameter
--allow_soft_placement : Ermöglichen--log_device_placement : Protokollplatzierung von OPs auf Geräten Die Implementierung basiert auf folgenden Projekten:
Für Kommentare und Feedbacks senden Sie mir bitte eine E -Mail an [email protected] oder eröffnen Sie hier ein Problem.