Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.bijectors.SoftmaxCentered

Биектор, вычисляющий Y = g(X) = exp([X 0]) / sum(exp([X 0])).

Наследуется от: Bijector

tf.contrib.distributions.bijectors.SoftmaxCentered(
    validate_args=False, name='softmax_centered'
)

Для реализации softmax как биекции, вперёд преобразование добавляет значение к входу, а обратное удаляет эту координату. Добавляемая координата представляет собой точку отсчёта, например, softmax(x) = exp(x-c) / sum(exp(x-c)), где c — это неявная последняя координата.

Пример использования:

bijector.SoftmaxCentered().forward(tf.math.log([2, 3, 4]))
# Result: [0.2, 0.3, 0.4, 0.1]
# Extra result: 0.1

bijector.SoftmaxCentered().inverse([0.2, 0.3, 0.4, 0.1])
# Result: tf.math.log([2, 3, 4])
# Extra coordinate removed.

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

Атрибуты
dtype Тип данных Tensor преобразуемых с помощью этого распределения.
forward_min_event_ndims Возвращает минимальное количество измерений, на которых bijector.forward работает.
graph_parents Возвращает graph_parents этого Bijector в виде списка Python.
inverse_min_event_ndims Возвращает минимальное количество измерений, на которых bijector.inverse работает.
is_constant_jacobian Возвращает true, если матрица Якоби не зависит от x.
Примечание: Матрица Якоби либо постоянна для прямого и обратного преобразований, либо ни для чего.
name Возвращает строковое имя этого Bijector.
validate_args Возвращает True, если аргументы Tensor будут проверены.

Методы

forward

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

forward(
    x, name='forward'
)

Возвращает результат вычисления прямого преобразования, т. е., X = g(Y).

Аргументы
x Tensor. Вход для вычисления «прямого» преобразования.
name Имя для данного op.
Возвращаемое значение
Tensor.
Исключения
TypeError если self.dtype указан, а x.dtype не является self.dtype.
NotImplementedError если _forward не реализован.

forward_event_shape

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

forward_event_shape(
    input_shape
)

Форма одного образца из одной партии в виде TensorShape.

То же значение, что и forward_event_shape_tensor. Может быть частично определена.

Аргументы
input_shape TensorShape указывающая форму события, переданную в функцию forward.
Возвращаемое значение
forward_event_shape_tensor TensorShape указывающая форму события после применения forward. Возможно неизвестная.

forward_event_shape_tensor

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

forward_event_shape_tensor(
    input_shape, name='forward_event_shape_tensor'
)

Форма одного образца из одной партии в виде 1D int32 Tensor.

Аргументы
input_shape Tensor, int32 вектор, указывающий форму события, переданную в функцию forward.
name имя, которое нужно дать операции
Возвращаемое значение
forward_event_shape_tensor Tensor, int32 вектор, указывающий форму события после применения forward.

forward_log_det_jacobian

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

forward_log_det_jacobian(
    x, event_ndims, name='forward_log_det_jacobian'
)

Возвращает как forward_log_det_jacobian.

Аргументы
x Tensor. Вход для вычисления определителя якобиана "прямого" преобразования.
event_ndims Количество измерений в преобразуемых вероятностных событиях. Должно быть больше или равно self.forward_min_event_ndims. Результат суммируется по последним измерениям для получения скалярного определителя якобиана для каждого события, т.е. имеет форму x.shape.ndims - event_ndims измерений.
name Имя для данного op.
Возвращаемое значение
Tensor, если данный биектор инъективен. Если не инъективен, это не реализовано.
Исключения
TypeError если self.dtype задано, и y.dtype не self.dtype.
NotImplementedError если ни _forward_log_det_jacobian ни {_inverse, _inverse_log_det_jacobian} не реализованы, или это биектор, не являющийся инъективным.

inverse

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

inverse(
    y, name='inverse'
)

Возвращает обратное Bijector вычисление, т.е., X = g^{-1}(Y).

Аргументы
y Tensor. Вход для вычисления "обратного" преобразования.
name Имя для данного op.
Возвращаемое значение
Tensor, если этот биектор инъективен. Если не инъективен, возвращает k-кортеж, содержащий уникальные k точки (x1, ..., xk) такие, что g(xi) = y.
Исключения
TypeError если self.dtype задано, и y.dtype не self.dtype.
NotImplementedError если _inverse не реализовано.

inverse_event_shape

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

inverse_event_shape(
    output_shape
)

Форма одного образца из одной партии как TensorShape.

То же значение, что и inverse_event_shape_tensor. Может быть определена частично.

Аргументы
output_shape TensorShape указывающая форму части события, переданную в функцию inverse .
Возвращаемое значение
inverse_event_shape_tensor TensorShape указывающая форму части события после применения inverse. Возможно неизвестно.

inverse_event_shape_tensor

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

inverse_event_shape_tensor(
    output_shape, name='inverse_event_shape_tensor'
)

Форма одного образца из одной партии как int32 1D Tensor.

Аргументы
output_shape Tensor, int32 вектор, указывающий форму части события, переданную в функцию inverse .
name имя для оператора
Возвращаемое значение
inverse_event_shape_tensor Tensor, int32 вектор, указывающий форму части события после применения inverse.

inverse_log_det_jacobian

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

inverse_log_det_jacobian(
    y, event_ndims, name='inverse_log_det_jacobian'
)

Возвращает (log o det o Jacobian o inverse)(y).

Математически возвращает: log(det(dX/dY))(Y). (Напомним, что: X=g^{-1}(Y).)

Обратите внимание, что forward_log_det_jacobian является обратным этого значения, вычисленного в g^{-1}(y).

Аргументы
y Tensor. Входное значение для вычисления обратной якобиановой матрицы.
event_ndims Число измерений в преобразуемых вероятностных событиях. Должно быть больше или равно self.inverse_min_event_ndims. Результат суммируется по последним измерениям, чтобы получить скалярную якобиановую матрицу для каждого события, т.е. имеет размерность y.shape.ndims - event_ndims.
name Имя для этого оператора.
Возвращаемое значение
Tensor, если этот биектор инъективен. Если не инъективен, возвращает кортеж локальных логарифмов определителей якобиановой матрицы, log(det(Dg_i^{-1}(y))), где g_i — ограничение g на ith-разбиение Di.
Исключения
TypeError если self.dtype указано, а y.dtype не self.dtype.
NotImplementedError если _inverse_log_det_jacobian не реализовано.

© 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/bijectors/SoftmaxCentered

Spec-Zone.ru

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