2

我目前正在嘗試在Keras中使用mbatch-normalization實現一個模型。我已經成功實施了培訓階段。如何在Keras的測試時間內使用批量標準化?

但是,對於測試,批量歸一化計算整個人口的統計量(均值和方差),然後進行網絡前向傳遞(BN均值和方差是預先計算的,然後保持靜態;這是與培訓階段相反,其中平均值和方差由批次確定)。

我就Keras的問題是:

假設(X,Y)是全部人口。 假設(X_batch,y_batch)是一個批處理(即整個羣體的子集)

如果我使用

model.test_on_batch(X_batch, y_batch) 

如何可以傳遞給分批正常化層的均值和方差X和Y的全部人口?有什麼辦法可以讓keras自動處理?

+0

我回答了你的問題嗎? – MaxB

+0

@MaxB,是的,非常感謝!它沒有解決我的問題,但你回答了我的問題:) – DaveTheAl

回答

3

如何將批處理規範化層傳遞給X和y的整個總體的均值和方差?有什麼辦法可以讓keras自動處理?

Keras應該只是做它(在充分的最新版本):

https://github.com/fchollet/keras/issues/81

仔細檢查,你可能會想嘗試batch_size=1在測試/預測時間,如果Keras無法使用全球統計數據,你可能會看到非常糟糕的結果。