栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Keras中为张量创建布尔蒙版?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Keras中为张量创建布尔蒙版?

请注意,当谈到一个类别的 准确性时 ,一个可能指以下(不等同)以下两个数量之一:

  • 召回 ,其中,类 Ç ,是标记有类实例比率 Ç 被预测为具有类 Ç
  • 精度 ,这对于类 Ç ,是的例子的比率预测为类的 Ç ,它们事实上标记类 Ç

除了进行复杂的索引编制外,您还可以仅依靠掩码进行计算。假设我们在这里谈论精度(更改召回率是微不足道的)。

from keras import backend as KINTERESTING_CLASS_ID = 0  # Choose the class of interestdef single_class_accuracy(y_true, y_pred):    class_id_true = K.argmax(y_true, axis=-1)    class_id_preds = K.argmax(y_pred, axis=-1)    # Replace class_id_preds with class_id_true for recall here    accuracy_mask = K.cast(K.equal(class_id_preds, INTERESTING_CLASS_ID), 'int32')    class_acc_tensor = K.cast(K.equal(class_id_true, class_id_preds), 'int32') * accuracy_mask    class_acc = K.sum(class_acc_tensor) / K.maximum(K.sum(accuracy_mask), 1)    return class_acc

如果您想变得更灵活,还可以对感兴趣的类别进行参数设置:

from keras import backend as Kdef single_class_accuracy(interesting_class_id):    def fn(y_true, y_pred):        class_id_true = K.argmax(y_true, axis=-1)        class_id_preds = K.argmax(y_pred, axis=-1)        # Replace class_id_preds with class_id_true for recall here        accuracy_mask = K.cast(K.equal(class_id_preds, interesting_class_id), 'int32')        class_acc_tensor = K.cast(K.equal(class_id_true, class_id_preds), 'int32') * accuracy_mask        class_acc = K.sum(class_acc_tensor) / K.maximum(K.sum(accuracy_mask), 1)        return class_acc    return fn

并将其用作:

model.compile(..., metrics=[single_class_accuracy(INTERESTING_CLASS_ID)])


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/660912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号