tensorflow计算交叉熵损失函数(cross_entropy)的方法总结

本文详细对比了TensorFlow中五种常用的交叉熵损失函数,包括sigmoid_cross_entropy、sigmoid_cross_entropy_with_logits、softmax_cross_entropy、softmax_cross_entropy_with_logits_v2和sparse_softmax_cross_entropy,分别适用于二分类和多分类问题,并提供了具体的代码示例。

交叉熵损失函数是用来度量两个概率分布间的差异性,有关交叉熵损失函数的原理在这篇博客中讲解得很好。而本文主要对以下几种tensorflow中常用的交叉熵损失函数进行比较和总结:

  • tf.losses.sigmoid_cross_entropy
  • tf.nn.sigmoid_cross_entropy_with_logits
  • tf.losses.softmax_cross_entropy
  • tf.nn.softmax_cross_entropy_with_logits_v2
  • tf.losses.sparse_softmax_cross_entropy

1. tf.losses.sigmoid_cross_entropy

import tensorflow as tf

batch_size = 4
num_classes = 2
'''
tf.losses.sigmoid_cross_entropy适用于二分类问题,是对logits先进行sigmoid再求交叉熵
args:
    logits:不经过sigmoid处理的神经网络输出,是分类器对每个类别打的分数,shape:[batch_size, num_classes]
    labels:真实标签值,shape:[batch_size, num_classes]
'''
logits = tf.constant([[9., 2.],
                      [1, 7.],
                      [5., 4.],
                      [2., 8.]])
labels = tf.constant([0, 1, 0, 1])
one_hot_labels = tf.one_hot(labels, depth=num_classes, dtype=tf.int32)
loss = tf.losses.sigmoid_cr
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值