Blok bangunan inti adalah arsitektur encoder-decoder RNN dan mekanisme perhatian.
Paket ini sebagian besar diimplementasikan menggunakan modul TF.Contrib.seq2seq terbaru (1.2)
Paket mendukung
Untuk preprocess data paralel mentah sample_data.src dan sample_data.trg , cukup jalankan
cd data /
. / preprocess . sh src trg sample_data $ { max_seq_len }Menjalankan kode di atas melakukan langkah -langkah preprocessing yang banyak digunakan untuk terjemahan mesin (MT).
Untuk melatih model seq2seq,
$ 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 ...Untuk menjalankan model terlatih untuk decoding,
$ 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
Jika --beam_width=1 , decoding serakah dilakukan pada setiap langkah waktu.
Param Data
--source_vocabulary : Path to Source Vocabulary--target_vocabulary : Path to Target Vosabulary--source_train_data : jalur ke data pelatihan sumber--target_train_data : Path to Target Data Pelatihan Target--source_valid_data : jalur ke data validasi sumber--target_valid_data : PATH TO Target Data ValidasiParam jaringan
--cell_type : sel RNN untuk digunakan untuk encoder dan decoder (default: LSTM)--attention_type : Mekanisme Perhatian (Bahdanau, Luong), (Default: Bahdanau)--depth : Jumlah unit tersembunyi untuk setiap lapisan dalam model (default: 2)--embedding_size : Embedding dimensi input encoder dan decoder (default: 500)--num_encoder_symbols : Ukuran kosa kata sumber untuk digunakan (default: 30000)--num_decoder_symbols : Ukuran kosa kata target untuk digunakan (default: 30000)--use_residual : Gunakan koneksi residual antar lapisan (default: true)--attn_input_feeding : Gunakan metode pengumpanan input dalam decoder perhatian (Luong et al., 2015) (default: true)--use_dropout : Gunakan dropout di output sel RNN (default: true)--dropout_rate : Probabilitas dropout untuk output sel (0,0: no dropout) (default: 0.3)Param pelatihan
--learning_rate : Jumlah unit tersembunyi untuk setiap lapisan dalam model (default: 0,0002)--max_gradient_norm : gradien klip ke norma ini (default 1.0)--batch_size : Ukuran Batch--max_epochs : zaman pelatihan maksimum--max_load_batches : Jumlah maksimum batch untuk dipilih pada satu waktu.--max_seq_length : panjang urutan maksimum--display_freq : Tampilkan Status Pelatihan Setiap iterasi ini--save_freq : simpan model pemeriksaan setiap iterasi ini--valid_freq : evaluasi model setiap iterasi ini: valid_data diperlukan--optimizer : pengoptimal untuk pelatihan: (adadelta, adam, rmsprop) (default: adam)--model_dir : jalur untuk menyimpan pos pemeriksaan model--model_name : Nama file yang digunakan untuk pos pemeriksaan model--shuffle_each_epoch : dataset pelatihan shuffle untuk setiap zaman (default: true)--sort_by_length : urutkan minibatch pra-fetched berdasarkan panjang urutan target mereka (default: true)Param decoding
--beam_width : Lebar balok yang digunakan dalam beamsearch (default: 1)--decode_batch_size : Ukuran batch yang digunakan dalam decoding--max_decode_step : batas langkah waktu maksimum dalam decoding (default: 500)--write_n_best : Tulis daftar beamsearch n-best (n = beam_width) (default: false)--decode_input : Path File Input ke Decode--decode_output : Jalur file output output decodingParam runtime
--allow_soft_placement : Izinkan penempatan lunak perangkat--log_device_placement : penempatan log ops pada perangkat Implementasinya didasarkan pada proyek berikut:
Untuk komentar dan umpan balik, silakan email saya di [email protected] atau buka masalah di sini.