【python】在Keras中使用Tensorflow Huber損失 - 程式人生

文章推薦指數: 80 %
投票人數:10人

我試圖用HuberLoss在Keras模型中(寫DQN),但是我得到了壞的結果,我認為我做了 ... import numpy as np import tensorflow as tf ''' ' Huber loss. 程式人生>python>在Keras中使用TensorflowHuber損失 【python】在Keras中使用TensorflowHuber損失 阿新••發佈:2020-11-03 我試圖用HuberLoss在Keras模型中(寫DQN),但是我得到了壞的結果,我認為我做了一些錯誤的事情。

我的IS程式碼如下。

model=Sequential() model.add(Dense(output_dim=64,activation='relu',input_dim=state_dim)) model.add(Dense(output_dim=number_of_actions,activation='linear')) loss=tf.losses.huber_loss(delta=1.0) model.compile(loss=loss,opt='sgd') returnmodel 解決辦法 我帶著同樣的問題來到這裡。

接受的答案使用了logcosh這可能有類似的性質,但它並不完全是Huber損失。

以下是我如何實現Keras的Huber損失(請注意,我使用的是TensorFlow1.5中的Keras)。

importnumpyasnp importtensorflowastf ''' 'Huberloss. 'https://jaromiru.com/2017/05/27/on-using-huber-loss-in-deep-q-learning/ 'https://en.wikipedia.org/wiki/Huber_loss ''' defhuber_loss(y_true,y_pred,clip_delta=1.0): error=y_true-y_pred cond=tf.keras.backend.abs(error)



請為這篇文章評分?