2017-05-21 111 views
0

我使用簡單的Keras模型進行系列預測。禁用Keras批處理標準化/標準化

我給它的輸入在整個系列中進行歸一化。

模型預測準確性在訓練期間似乎是正確的。但是,當我繪製model.predict()函數的輸出時,我可以看到輸出已經以某種方式縮放。這似乎是某種標準化/標準化縮放類型。

更改培訓中的批量大小會影響結果。我嘗試將批處理大小設置爲輸入集的大小,以便整個系列的訓練在單個批處理中完成,這樣可以提高結果,但仍會縮放。

我的假設是這與每個輸入批處理規範化或輸出規範化有關。我的模型中沒有任何BatchNormalization圖層。

有沒有辦法在Keras中禁用輸入/輸出的默認標準化/標準化(並且這種默認行爲是否存在)?

我使用Keras 2與Tensorflow後端和Tensorflow 1.1。

+0

什麼是您的最終激活層?乙狀結腸?正切?那些將始終輸出標準化的結果。 (建議這樣做,最好將訓練的預期結果標準化) –

+0

最後一層的輸出應該被標準化。我正在使用'sigmoid'激活。這不是問題。我相信每個批次的輸入都是標準化/標準化的(或者輸出是按比例縮放的),似乎沒有辦法關閉它。 –

+0

爲什麼你認爲結果是縮放?你的「基本事實/預期結果數組」是什麼?你是否認爲訓練的準確性是可以的,但是驗證數據的準確性不是? –

回答

1

Keras不會隱式插入BN或任何其他規範化。

你必須注意別的。