首页 > 解决方案 > Keras 加权二元交叉熵卡住

问题描述

我正在尝试在 Keras 中实现来自 TF 的加权交叉熵。来自 TF 网站的文档:https ://www.tensorflow.org/api_docs/python/tf/nn/weighted_cross_entropy_with_logits

这就是我所做的:

import tensorflow as tf
from keras import backend as K

# Create the custom loss function
def weighted_binary_crossentropy(weights):
    def w_binary_crossentropy(y_true, y_pred):
        return K.mean(tf.nn.weighted_cross_entropy_with_logits(
            y_true,
            y_pred,
            weights,
            name=None
        ), axis=-1)
    return w_binary_crossentropy

# Optimizers, Loss and Compile
adam = Adam(lr=0.0001)
weighted_loss = weighted_binary_crossentropy(weights=1)
model.compile(optimizer=adam, loss=weighted_loss, metrics=['accuracy'])

训练开始,但损失没有得到更新/卡住。我的期望是如果我将权重设置为 1,那么结果将与标准交叉熵损失相同。我错过了什么吗?

标签: pythontensorflowkeras

解决方案


推荐阅读