codecamp

TensorFlow函数教程:tf.nn.sigmoid_cross_entropy_with_logits

tf.nn.sigmoid_cross_entropy_with_logits函数

tf.nn.sigmoid_cross_entropy_with_logits(
    _sentinel=None,
    labels=None,
    logits=None,
    name=None
)

定义在:tensorflow/python/ops/nn_impl.py。

计算给定logits的sigmoid交叉熵。

测量离散分类任务中的概率误差,其中每个类是独立的而不是互斥的。例如,可以执行多标签分类,其中图片可以同时包含大象和狗。

为简洁起见, x = logitsz = labels。logistic损失是:

  z * -log(sigmoid(x)) + (1 - z) * -log(1 - sigmoid(x))
= z * -log(1 / (1 + exp(-x))) + (1 - z) * -log(exp(-x) / (1 + exp(-x)))
= z * log(1 + exp(-x)) + (1 - z) * (-log(exp(-x)) + log(1 + exp(-x)))
= z * log(1 + exp(-x)) + (1 - z) * (x + log(1 + exp(-x))
= (1 - z) * x + log(1 + exp(-x))
= x - x * z + log(1 + exp(-x))

对于x <0,为避免exp(-x)中的溢出,我们重新配置上述内容:

  x - x * z + log(1 + exp(-x))
= log(exp(x)) - x * z + log(1 + exp(-x))
= - x * z + log(1 + exp(x))

因此,为了确保稳定性并避免溢出,使用以下的等效公式实现:

max(x, 0) - x * z + log(1 + exp(-abs(x)))

logits和labels必须具有相同的类型和shape。

参数:

  • _sentinel:用于防止positional参数。内部的,不要使用。
  • labels:一个Tensor,与logits具有相同的类型和shape。
  • logits:一个Tensor,类型为float32或float64。
  • name:操作的名称(可选)。

返回:

与具有分量logistic损失的logits有着相同shape的Tensor。

可能引发的异常:

  • ValueError:如果logits和labels没有相同的shape。
TensorFlow函数教程:tf.nn.separable_conv2d
TensorFlow函数教程:tf.nn.softmax
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

TensorFlow 函数介绍

TensorFlow 函数模块:tf

TensorFlow的image模块

TensorFlow使用之tf.io

TensorFlow使用之tf.keras

TensorFlow函数教程:tf.keras.applications

TensorFlow函数教程:tf.keras.backend

TensorFlow使用之tf.metrics

TensorFlow使用之tf.nn

TensorFlow使用之tf.python_io

TensorFlow 功能函数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }