Spec-Zone.ru › TensorFlow 1.15

tf.math.cumulative_logsumexp

Просмотреть исходный код на GitHub

Вычислить кумулятивное логарифмическое сумму-экспоненту тензора x вдоль axis.

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.math.cumulative_logsumexp, `tf.compat.v2.math.cumulative_logsumexp`

tf.math.cumulative_logsumexp(
    x, axis=0, exclusive=False, reverse=False, name=None
)

По умолчанию этот оператор выполняет кумулятивную логарифмическую сумму-экспоненту с включением, что означает, что первый элемент входного значения идентичен первому элементу выходного значения.

Эта операция значительно более устойчива к числовым ошибкам, чем эквивалентная операция tensorflow tf.math.log(tf.math.cumsum(tf.math.exp(x))), хотя вычисляет тот же результат при бесконечной точности. Однако обратите внимание, что в некоторых случаях она может быть менее устойчивой, чем tf.math.reduce_logsumexp для данного элемента, поскольку она применяет «трюк логарифмической суммы-экспоненты» по-другому.

Более точно, где tf.math.reduce_logsumexp использует следующий трюк:

log(sum(exp(x))) == log(sum(exp(x - max(x)))) + max(x)

его нельзя напрямую использовать здесь, так как нет быстрого способа применить его к каждому префиксу x[:i]. Вместо этого эта функция реализует сканирование префикса с использованием парной логарифмической суммы-экспоненты, которая является коммутативной и ассоциативной операцией (вплоть до точности с плавающей запятой):

log_add_exp(x, y) = log(exp(x) + exp(y))
                  = log(1 + exp(min(x, y) - max(x, y))) + max(x, y)

Однако, уменьшение с использованием вышеуказанной операции приводит к другому дереву вычислений (логарифмы вычисляются повторно вместо только в конце), а максимум вычисляется только попарно вместо всего префикса. В общем, это приводит к другому и немного менее точному вычислению.

Аргументы
x A Tensor. Должен быть одного из следующих типов: float16, float32, float64.
axis A Tensor типа int32 или int64 (по умолчанию: 0). Должен находиться в диапазоне [-rank(x), rank(x)).
exclusive Если True, выполните эксклюзивную кумулятивную логарифмическую сумму-экспоненту.
reverse Если True, выполняет кумулятивную логарифмическую сумму-экспоненту в обратном направлении.
name Имя операции (необязательно).
Возвращает
A Tensor. Имеет такую же форму и тип, как 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/math/cumulative_logsumexp

Spec-Zone.ru

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