tensorflow学习笔记:交叉熵计算

多目标,多分类问题

多目标又指多类别分类,即每个类别相互独立,但不互斥,如一幅图中同时包括几种动物。

多分类又指单类别分类,即每个类别之间是相互独立且互斥,不可同时发生,如一幅图只能属于一类动物。

代价函数可用于评价模型预测值与真实值之间的差距,常见的代价函数为均方误差(MSE)。在分类问题中,使用交叉熵作为代价函数。交叉熵的基本概念,计算例子以及为什么交叉熵可以用来作为代价函数可参考这篇文章:https://blog.csdn.net/tsyccnh/article/details/79163834,这里主要讲解TensorFlow中四种交叉熵计算函数。

针对分类问题,TensorFlow中四种交叉熵计算函数

1、tf.nn.sigmoid_cross_entropy_with_logits(logits,targets, name=None)

是TensorFlow中实现最早的交叉熵算法。适用于多目标问题(如一张图片中同时包含了大象和狗),输入的logits不需要经过sigmoid,输入后先通过sigmoid函数激活,再计算它和targets的交叉熵,Logits和labels需是相同的shape。但它最典型的使用适用于二分类,如人脸识别中识别有没有戴眼镜等等。

2、tf.nn.softmax_cross_entropy_with_logits(logits,labels, name=None)

计算logits和labels之间的softmax交叉熵。适用于多分类问题(一张图片中只有一种动物,如cifar数据集)。输入的logits为未归一化的logits,它在内部对logits使用了softmax。因此,不可以输入softmax后的logits进行计算。Logits和labels需是相同的shape[batch_size, num_class],并且是相同的dtype,如float32或者float64

tf.nn.sparse_softmax_cross_entropy_with_logits

适用于多分类问题,是tf.nn.softmax_cross_entropy_with_logits的简化版本

tf.nn.weighted_cross_entropy_with_logits(logits, targets, pos_weight)

是tf.nn.sigmoid_cross_entropy_with_logits的进化版本,计算有权重的sigmoid交叉熵,输入中多一个pos_weight, 可以通过调整pos_weight控制正样本的loss可适用于正负样本不平衡的数据。

参考文档: http://dataunion.org/26447.html

tensorflow cross_entropy 四种交叉熵计算函数_清舞 点滴-CSDN博客

http://www.tensorfly.cn/tfdoc/api_docs/python/nn.html#sigmoid_cross_entropy_with_logits

Java Runtime.getRuntime().exec() fails after calling it several hundred times | 易学教程

python - Unbalanced data and weighted cross entropy - Stack Overflow

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值