我想構建一個網絡,對於給定的輸入,預測一天中的小時。結果應該在0到24範圍內。張量流中的循環損失
我試圖將其解決爲分類問題,但似乎並不正確。我的問題是,我不知道如何建立循環損失函數。例如,在我的情況下,如果網絡的輸出爲1,真實標籤爲23,我希望距離爲2而不是22.是否有可用的圖層?
我想構建一個網絡,對於給定的輸入,預測一天中的小時。結果應該在0到24範圍內。張量流中的循環損失
我試圖將其解決爲分類問題,但似乎並不正確。我的問題是,我不知道如何建立循環損失函數。例如,在我的情況下,如果網絡的輸出爲1,真實標籤爲23,我希望距離爲2而不是22.是否有可用的圖層?
據我所知,沒有預先寫好的循環損失函數。對於週期性損失,你應該寫你自己的損失函數是這樣的:
import keras.backend as K
def cyclic_loss(y_true, y_pred):
return K.min((y_pred +24 - y_true) % 24, (y_true + 24 - y_pred) % 24)
model.compile(optimizer='sgd', loss=cyclic_loss, metrics=['acc'])
但是如果你定義了你的損失一樣,它不是一個分類問題。如果您想要分類問題,您應該使用單熱編碼對輸出進行編碼,並使用交叉熵作爲丟失函數。那麼你有一天的每個小時的可能性,你以最高的概率獲得小時。
作爲迴歸任務,您可以使用上述的循環損失函數。
歡迎來到SO!這是一個很好的問題;它不應該被拒絕。但是,總是希望顯示一些您所做的工作,理想情況下使用代碼或僞代碼片段。這會使你的問題不太可能被誤解爲缺乏研究和努力。 – Praveen