2016-06-15 15 views
0

テンソルフローseq2seq_model.pyモデルで実験しています。TensorFlow target_vocab_sizeの数が少ないseq2seqモデル

512未満の語彙については、それだけで標準のソフトマックス損失を使用するために良いアイデアかもしれません。私が持っている ターゲット単語のサイズは約200

documentationインクルードは言うです。

if num_samples > 0 and num_samples < self.target_vocab_size: 

のみ200目標出力語彙でモデルを実行if文を呼び出しません。

は、ソースコードもチェックしています。

良い標準トレーニングを確実にするために「標準」ソフトマックスロス機能を記述する必要がありますか、それともモデルをそのまま実行させることはできますか?

ありがとうございました!

答えて

0

私は同じことをやっています。トレーニングデータの中のさまざまな種類の構造で私の指が濡れるようにするために、(ソースとターゲットの)ターゲットボキャブラリでわずか117ワードの人工テストワールドで作業しています。

私は自分自身に同じ質問をして、その面倒を見送ることに決めました。私のモデルは、たとえ私が損失に触れなかったとしても、まだsampled_softmax_lossを使用していても、うまくいきます。これらの小さな単語サイズの

さらに経験: - バッチサイズ32(小さいものはそれが本当に不安定になると、私はすぐにナン-の問題に実行します)私の場合は最高です - 私は、オプティマイザとしてAdaGradを使用していますし、それは次のように動作します魔法 - 私はmodel_with_buckets(translate.pyによって扱われています)で作業しており、num_layers 2でサイズ512を指定すると、多くの場合望ましい結果が得られます。

+0

モデルとの経験を共有してくれてありがとう! seq2seq_model.pyでは、tf.train.GradientDescentOptimizerをtf.train.AdagradOptimizerに置き換えましたか?あるいは、次のループで、xrangeのb(len(buckets))のために何かを適応させる必要がありますか? – Max

+0

ただそこに置き換えてください。それ以降のforループは、この目的のために編集する必要はありません。 – friesel

関連する問題