Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.bijectors.ScaleTriL

Преобразует неограниченные векторы в матрицы TriL с положительной диагональю.

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

tf.contrib.distributions.bijectors.ScaleTriL(
    diag_bijector=None, diag_shift=1e-05, validate_args=False, name='scale_tril'
)

Это реализовано как простое tfb.Chain из tfb.FillTriangular, за которым следует tfb.TransformDiagonal, и предоставлено в основном для удобства. По умолчанию используется несколько субъективная настройка, использующая преобразование Softplus, за которым следует небольшой сдвиг (1e-5), который пытается избежать числовых проблем с нулями на диагонали.

Примеры

import tensorflow_probability as tfp
tfd = tfp.distributions
tfb = tfp.bijectors

b = tfb.ScaleTriL(
     diag_bijector=tfb.Exp(),
     diag_shift=None)
b.forward(x=[0., 0., 0.])
# Result: [[1., 0.],
#          [0., 1.]]
b.inverse(y=[[1., 0],
             [.5, 2]])
# Result: [log(2), .5, log(1)]

# Define a distribution over PSD matrices of shape `[3, 3]`,
# with `1 + 2 + 3 = 6` degrees of freedom.
dist = tfd.TransformedDistribution(
        tfd.Normal(tf.zeros(6), tf.ones(6)),
        tfb.Chain([tfb.CholeskyOuterProduct(), tfb.ScaleTriL()]))

# Using an identity transformation, ScaleTriL is equivalent to
# tfb.FillTriangular.
b = tfb.ScaleTriL(
     diag_bijector=tfb.Identity(),
     diag_shift=None)

# For greater control over initialization, one can manually encode
# pre- and post- shifts inside of `diag_bijector`.
b = tfb.ScaleTriL(
     diag_bijector=tfb.Chain([
       tfb.AffineScalar(shift=1e-3),
       tfb.Softplus(),
       tfb.AffineScalar(shift=0.5413)]),  # softplus_inverse(1.)
                                          #  = log(expm1(1.)) = 0.5413
     diag_shift=None)
Аргументы
diag_bijector экземпляр Bijector, используемый для преобразования выходной диагонали в положительную. Значение по умолчанию: None (т.е. tfb.Softplus()).
diag_shift Вещественное значение, передаваемое и добавляемое ко всем диагональным элементам после применения diag_bijector. Установка положительного значения заставляет выходные диагональные элементы быть положительными, но не позволяет инвертировать преобразование для матриц с диагональными элементами меньше этого значения. Значение по умолчанию: 1e-5 (т.е. сдвиг не применяется).
validate_args Python bool, указывающий, следует ли проверять аргументы на правильность. Значение по умолчанию: False (т.е. аргументы не проверяются).
name Python str имя, заданное для операций, управляемых этим объектом. Значение по умолчанию: scale_tril.
Атрибуты
bijectors
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, если тензорные аргументы будут проверены.

Методы

forward

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

forward(
    x, name='forward'
)

Возвращает вычисление Bijector вперёд, т. е. X = g(Y).

Аргументы
x Tensor. Вход для вычисления "вперёд".
name Имя, которое нужно дать этой операции.
Возвращает
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'
)

Форма одного образца из одной группы в виде 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 Имя, которое нужно дать этой операции.
Возвращает
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 Имя, которое нужно дать этой операции.
Возвращает
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 одномерного 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'
)

Возвращает (логарифм определителя якобиана обратного преобразования)(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/ScaleTriL

Spec-Zone.ru

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