首页 > 解决方案 > 如何在 keras 模型中实现汉明损失作为自定义指标

问题描述

如何在 keras 模型中将汉明损失作为自定义指标实现
我有一个包含 6 个类的多标签分类

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy',hamming_loss])

我尝试使用

from sklearn.metrics import hamming_loss
def custom_hl(y_true, y_pred):    
  return hamming_loss(y_true, y_pred)

这不起作用,因为我有 y_true , y_pred 如下

YTRUE
Tensor("Cast_10:0", shape=(None, 6), dtype=float32)
YPRED
Tensor("model_1/dense_1/Sigmoid:0", shape=(None, 6), dtype=float32)

还尝试了这个问题中的功能,但它不起作用 在 scikit-learn 中获取多标签预测的准确性 有什么方法可以让我在 keras 中将汉明损失作为度量,感谢您的帮助

标签: python-3.xtensorflowkerasmultilabel-classificationscikits

解决方案


所以我找到了一种方法

def Custom_Hamming_Loss(y_true, y_pred):
  return K.mean(y_true*(1-y_pred)+(1-y_true)*y_pred)

def Custom_Hamming_Loss1(y_true, y_pred):
  tmp = K.abs(y_true-y_pred)
  return K.mean(K.cast(K.greater(tmp,0.5),dtype=float))

来源:https ://groups.google.com/g/keras-users/c/_sjndHbejTY?pli=1


推荐阅读