我正在使用tensorflow seq2seq.rnn_decoder標題自動生成項目。如何提高張量流中的單詞精度?
我的訓練集是一套很大的標題,每個標題都是相互獨立的,並且不相關。
我曾嘗試兩個數據格式進行訓練:
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]
然後我做了測試的一小部分,其擁有10000個冠軍,但結果讓我感到困惑。
F1是做一個很好的預測在一個字,就像這樣:
iphone predict 6
samsung predict galaxy
case predict cover
F2是使一個長句子的良好預測,如果輸入的是從句子的第一個字開始,預測多次幾乎等於原來的句子。
但是,如果起始詞來自句子的中間(或近端),則F2的預測非常糟糕,就像隨機結果一樣。
這種情況與隱藏狀態有關嗎?
在訓練階段,我重置隱藏狀態爲0時,一個新的時代開始,因此,所有批次的時代將使用相同的隱藏狀態,我懷疑這是不是一個好的做法,因爲每一個句子實際上是獨立的,它是否可以在訓練中分享相同的隱藏狀態?
在推斷階段,初始化隱藏狀態爲0,&在輸入單詞時更新。 (當清除輸入時復位爲0)
所以我的問題是爲什麼F2的預測是壞的,當開始詞是從句子的中間(或近端)?在我的項目中更新隱藏狀態的正確方法是什麼?
我同意你的看法,但從句子中間預測是最常見的要求,而且每個標題都是獨立的也很重要。 我該如何改進這個模型? 謝謝。 –