JCM*_*MRE 5 python neural-network deep-learning keras tensorflow
我正在使用一个高度偏斜的计数数据集,该数据集通常适合负二项式。我想在前馈神经网络上的 Keras 或 Tensorflow 中使用负二项式作为损失函数。
据我所知,在查看可用的损失函数后,keras 或 tensorflow 不存在这样的函数(尽管我希望我错了,我只是错过了一些东西)。
我环顾四周,我看到帖子建议只交换损失以包含负二项式,但似乎在 tensorflow 中创建自定义损失不仅仅是用 tf.contrib.distributions.NegativeBinomial 交换它
有几篇文章谈到了为 Tensorflow/keras 创建自定义损失函数,例如:https ://datascience.stackexchange.com/questions/25029/custom-loss-function-with-additional-parameter-in-keras 看了之后这个,我正在努力弄清楚如何编码这个。
我想知道是否 1) 任何人已经使用负二项式创建了一个损失函数,并愿意分享它是如何编码的,或者 2) 有关如何进行这项工作的提示。
我在这个项目中专门使用 python 工作。
提前感谢所有帮助。
小智 1
我不知道负二项式损失,但我知道如何实现自定义损失函数
def custom_loss(y_true, y_pred):
...
loss = ...
return loss
Run Code Online (Sandbox Code Playgroud)
将 y_true 和 y_pred 视为张量。(这意味着您需要使用tensorflow或keras.backend中的函数,而不是使用np.pow(y_true,2)等函数)
将您的自定义损失函数作为编译参数传递
model.compile(loss=custom_loss, optimizer='your favorite optimizer')
Run Code Online (Sandbox Code Playgroud)