Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.reduce_weighted_logsumexp

Вычисляет log(abs(sum(weight * exp(elements across tensor dimensions)))).

tf.contrib.distributions.reduce_weighted_logsumexp(
    logx, w=None, axis=None, keep_dims=False, return_sign=False, name=None
)

Если все веса w известны как положительные, то более эффективно использовать reduce_logsumexp, т.е. tf.reduce_logsumexp(logx + tf.math.log(w)) более эффективно, чем du.reduce_weighted_logsumexp(logx, w).

Сводит input_tensor по измерениям, указанным в axis. Если keep_dims не равно true, ранг тензора уменьшается на 1 для каждого элемента в axis. Если keep_dims равно true, измерения, которые были сведены, сохраняются с длиной 1.

Если у axis нет элементов, все измерения сводятся, и возвращается тензор с одним элементом.

Эта функция более числово устойчива, чем log(sum(w * exp(input))). Она избегает переполнений, вызванных взятием exp от больших входных данных, и недополнений, вызванных взятием log от малых входных данных.

Например:

x = tf.constant([[0., 0, 0],
                 [0, 0, 0]])

w = tf.constant([[-1., 1, 1],
                 [1, 1, 1]])

du.reduce_weighted_logsumexp(x, w)
# ==> log(-1*1 + 1*1 + 1*1 + 1*1 + 1*1 + 1*1) = log(4)

du.reduce_weighted_logsumexp(x, w, axis=0)
# ==> [log(-1+1), log(1+1), log(1+1)]

du.reduce_weighted_logsumexp(x, w, axis=1)
# ==> [log(-1+1+1), log(1+1+1)]

du.reduce_weighted_logsumexp(x, w, axis=1, keep_dims=True)
# ==> [[log(-1+1+1)], [log(1+1+1)]]

du.reduce_weighted_logsumexp(x, w, axis=[0, 1])
# ==> log(-1+5)
Аргументы
logx Тензор для сведения. Должен иметь числовой тип.
w Тензор весов. Должен иметь числовой тип, идентичный типу logx.
axis Измерения для сведения. Если None (по умолчанию), сводит все измерения. Должны быть в диапазоне [-rank(input_tensor), rank(input_tensor)).
keep_dims Если true, сохраняет изменённые измерения с длиной 1.
return_sign Если True, возвращает знак результата.
name Имя операции (необязательно).
Возвращаемое значение
lswe Сведённый тензор.
sign (Необязательно) Знак sum(weight * exp(x)).

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/distributions/reduce_weighted_logsumexp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API