私はtensorflow seq2seq.rnn_decoderでタイトルを自動生成するプロジェクトに取り組んでいます。テンソルフローの単語rnnの精度を改善するにはどうすればよいですか?
私のトレーニングセットは大きなセットのタイトルであり、各タイトルは互いに独立しており、関連性はありません。
私はトレーニングのための2つのデータ・フォーマットを試してみた:
F1. Use the fixed seq length in batch, and replace ‘\n’ to ‘<eos>’, and ‘<eos>’ index is 1, which training batch is like: [2,3,4,5,8,9,1,2,3,4], [88,99,11,90,1,5,6,7,8,10]
F2. Use Variable seq length in batch, and add PAD 0 to keep the fixed length, which training batch is like: [2,3,4,5,8,9,0,0,0,0], [2,3,4,88,99,90,11,0,0,0]
その後、私は万本のタイトルを持っている小さなセットでテストを行うが、結果は私が混乱します。
iphone predict 6
samsung predict galaxy
case predict cover
F2が入力文の最初の単語から開始された場合、長い文章で良い予測を行うで、何度予測:
F1は、このように、単一の単語で良い予測を行うです元の文とほとんど同じです。
しかし、開始単語が文の中央(または近端)からのものである場合、F2の予測はランダムな結果と非常によく似ています。
この状態は非表示状態に関連していますか?
トレーニングフェーズでは、新しいエポックが開始されると非表示状態が0にリセットされます。エポック内のすべてのバッチは同じ非表示状態を使用するため、実際にはすべての文章が実際に独立した、それは訓練で同じ隠れた状態を共有することができますか?
推論フェーズでは、初期隠れ状態は0であり、ワードを供給するときには&が更新されます。 (クリア入力時に0にリセット)
私の質問は、文章の中間(または近端)から単語を開始するときにF2の予測が悪いのはなぜですか?私のプロジェクトで隠れた状態を更新する正しい方法は何ですか?
私はあなたに同意しますが、文の途中から予測するのが最も一般的な要件であり、各タイトルは独立していることも重要です。 このモデルを改善するにはどうすればよいですか? ありがとうございます。 –