tf seq2seq
1.0.0
コアビルディングブロックは、RNNエンコーダデコーダーアーキテクチャと注意メカニズムです。
このパッケージは、最新(1.2)tf.contrib.seq2seqモジュールを使用して主に実装されていました
パッケージはサポートします
sample_data.srcとsample_data.trgの生の並列データを事前に処理するには、単に実行する
cd data /
. / preprocess . sh src trg sample_data $ { max_seq_len }上記のコードを実行すると、機械翻訳(MT)に広く使用されている前処理手順が実行されます。
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 ...デコードのために訓練されたモデルを実行するには、
$ 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
--beam_width=1の場合、各タイムステップで貪欲なデコードが実行されます。
データパラメーション
--source_vocabulary :ソース語彙へのパス--target_vocabulary :ターゲット語彙へのパス--source_train_data :ソーストレーニングデータへのパス--target_train_data :ターゲットトレーニングデータへのパス--source_valid_data :ソース検証データへのパス--target_valid_data :ターゲット検証データへのパスネットワークパラメーション
--cell_type :エンコーダーとデコーダーに使用するRNNセル(デフォルト:LSTM)--attention_type :注意メカニズム(Bahdanau、luong)、(デフォルト:Bahdanau)--depth :モデル内の各レイヤーの非表示ユニットの数(デフォルト:2)--embedding_size :エンコーダーとデコーダーの入力の寸法の埋め込み(デフォルト:500)--num_encoder_symbols :使用するソース語彙サイズ(デフォルト:30000)--num_decoder_symbols :使用するターゲットの語彙サイズ(デフォルト:30000)--use_residual :レイヤー間の残留接続を使用します(デフォルト:true)--attn_input_feeding :注意デコーダーで入力給餌方法を使用します(Luong et al。、2015)(デフォルト:True)--use_dropout :RNNセル出力でドロップアウトを使用します(デフォルト:true)--dropout_rate :セル出力のドロップアウト確率(0.0:ドロップアウトなし)(デフォルト:0.3)トレーニングパラメーション
--learning_rate :モデル内の各レイヤーの非表示ユニットの数(デフォルト:0.0002)--max_gradient_norm :このノルムへのクリップグラデーション(デフォルト1.0)--batch_size :バッチサイズ--max_epochs :最大トレーニングエポック--max_load_batches :一度にプリフェッチするバッチの最大数。--max_seq_length :最大シーケンス長--display_freq :この反復ごとにトレーニングステータスを表示します--save_freq :この反復ごとにモデルチェックポイントを保存します--valid_freq :モデルを評価するすべての繰り返し:valid_dataが必要--optimizer :トレーニング用オプティマイザー:( Adadelta、Adam、RMSProp)(デフォルト:Adam)--model_dir :モデルチェックポイントを保存するパス--model_name :モデルチェックポイントに使用されるファイル名--shuffle_each_epoch :各エポックのシャッフルトレーニングデータセット(デフォルト:true)--sort_by_length :ターゲットシーケンスの長さで事前にフェッチしたミニバッチをソートします(デフォルト:true)パラメーションのデコード
--beam_width :beamsearchで使用されるビーム幅(デフォルト:1)--decode_batch_size :デコードで使用されるバッチサイズ--max_decode_step :デコードの最大時間ステップ制限(デフォルト:500)--write_n_best :beamsearch n-bestリストを書き込む(n = beam_width)(デフォルト:false)--decode_input :decodeにファイルパスを入力します--decode_output :出力ファイルパスのデコード出力のパスランタイムパラメーション
--allow_soft_placement :デバイスのソフト配置を許可します--log_device_placement :デバイス上のOPSのログ配置実装は、次のプロジェクトに基づいています。
コメントやフィードバックについては、[email protected]までメールでお問い合わせいただくか、ここで問題を開いてください。