tensorflow进阶篇-4(损失函数3)

Posted 每天学习一点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tensorflow进阶篇-4(损失函数3)相关的知识,希望对你有一定的参考价值。

Softmax交叉熵损失函数(Softmax cross-entropy loss)是作用于非归一化的输出结果只针对单个目标分类的计算损失。通过softmax函数将输出结果转化成概率分布,然后计算真值概率分布的损失:

复制代码
# Softmax entropy loss
# L = -actual * (log(softmax(pred))) - (1-actual)(log(1-softmax(pred)))
unscaled_logits = tf.constant([[1., -3., 10.]])
target_dist = tf.constant([[0.1, 0.02, 0.88]])
softmax_xentropy = tf.nn.softmax_cross_entropy_with_logits(logits=unscaled_logits, labels=target_dist)
print(sess.run(softmax_xentropy))
复制代码

输出:[ 1.16012561]

稀疏Softmax交叉熵损失函数(Sparse Softmax cross-entropy loss)和上一个损失函数类似,它是把目标函数分类为true的转化成index,而Softmax交叉熵损失函数将目标转成概率分布:

复制代码
# Sparse entropy loss
# L = sum( -actual * log(pred) )
unscaled_logits = tf.constant([[1., -3., 10.]])
sparse_target_dist = tf.constant([2])
sparse_xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(logits=unscaled_logits, labels=sparse_target_dist)
print(sess.run(sparse_xentropy))
复制代码

输出:[ 0.00012564]

 

下面总结一下各种损失函数:

 

以上是关于tensorflow进阶篇-4(损失函数3)的主要内容,如果未能解决你的问题,请参考以下文章

tensorflow进阶篇-5(反向传播2)

机器学习之路: tensorflow 自定义 损失函数

TensorFlow逻辑回归原理与实现(超详细)

tensorflow定义神经网络损失函数MSE

TensorFlow 损失函数在第一个 epoch 后归零

在 Tensorflow 2.3.1 中读取损失函数的值