阅读(10.1k) 书签 (0)

TensorFlow函数:tf.reduce_logsumexp

2018-12-11 13:51 更新
tf.reduce_logsumexp 函数
reduce_logsumexp(
    input_tensor,
    axis=None,
    keep_dims=False,
    name=None,
    reduction_indices=None
)

定义在:tensorflow/python/ops/math_ops.py.

请参阅指南:数学函数>减少

计算log(sum(exp(exp(张量的各维数的元素))).

按照给定的axis上的维度减少input_tensor.除非keep_dims是true,否则张量的秩在axis上的每一项都减少1.如果keep_dims为 true,则减少的尺寸将保留为1.

如果axis没有条目,则缩小所有维度,并返回具有单个元素的张量.

这个函数在数值上比 log(sum(exp(input)))更稳定.它避免了大量输入的 exp 引起的溢出和小输入日志带来的下溢.

例如:

x = tf.constant([[0., 0., 0.], [0., 0., 0.]])
tf.reduce_logsumexp(x)  # log(6)
tf.reduce_logsumexp(x, 0)  # [log(2), log(2), log(2)]
tf.reduce_logsumexp(x, 1)  # [log(3), log(3)]
tf.reduce_logsumexp(x, 1, keep_dims=True)  # [[log(3)], [log(3)]]
tf.reduce_logsumexp(x, [0, 1])  # log(6)

参数:

  • input_tensor:张量减少.应该有数字类型.
  • axis:要减小的维度.如果为None(默认),则减少所有维度.必须在[-rank(input_tensor), rank(input_tensor))范围内.
  • keep_dims:如果为true,则保留长度为1的减少尺寸.
  • name:操作的名称(可选).
  • reduction_indices:axis的弃用名称.

返回:

减少的张量.