Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.bijectors.Permute

Переставляет правую крайнюю размерность Tensor.

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

tf.contrib.distributions.bijectors.Permute(
    permutation, validate_args=False, name=None
)
import tensorflow_probability as tfp
tfb = tfp.bijectors

reverse = tfb.Permute(permutation=[2, 1, 0])

reverse.forward([-1., 0., 1.])
# ==> [1., 0., -1]

reverse.inverse([1., 0., -1])
# ==> [-1., 0., 1.]

reverse.forward_log_det_jacobian(any_value)
# ==> 0.

reverse.inverse_log_det_jacobian(any_value)
# ==> 0.
Предупреждение: tf.estimator может многократно строить граф, поэтому Permute(np.random.permutation(event_size)).astype("int32")) не является надёжной параметризацией (даже если использовать tf.constant). Безопасной альтернативой является использование tf.compat.v1.get_variable для достижения поведения «инициализировать один раз», т.е.
def init_once(x, name):
  return tf.compat.v1.get_variable(name, initializer=x, trainable=False)

Permute(permutation=init_once(
    np.random.permutation(event_size).astype("int32"),
    name="permutation"))
Аргументы
permutation Вектор-подобный int Tensor, представляющий перестановку для применения к правой крайнюю размерности преобразованного Tensor.
validate_args Python bool указывающий, должны ли проверяться аргументы на правильность.
name Python str, имя, присваиваемое операциям, управляемым этим объектом.
Исключения
TypeError если not permutation.dtype.is_integer.
ValueError если permutation не содержит ровно по одному из каждого из {0, 1, ..., d}.
Атрибуты
dtype тип данных Tensor преобразуемых этой распределением.
forward_min_event_ndims Возвращает минимальное количество размерностей, над которыми действует bijector.forward.
graph_parents Возвращает родительские узлы графа этого Bijector в виде списка Python.
inverse_min_event_ndims Возвращает True, если матрица Якобиан не зависит от x.
Примечание: Матрица Якобиан либо постоянна для forward и inverse, либо ни для того, ни для другого.
name Возвращает строковое имя этого Bijector.
permutation
validate_args Возвращает True, если тензорные аргументы будут проверены.

Методы

forward

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

forward(
    x, name='forward'
)

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

Аргументы
x Tensor. Вход для вычисления "forward".
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 1D 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, если этот bijector взаимно однозначен. Если не взаимно однозначен, это не реализовано.
Исключения
TypeError если self.dtype указан и y.dtype не self.dtype.
NotImplementedError если ни _forward_log_det_jacobian ни {_inverse, _inverse_log_det_jacobian} не реализованы, или это bijector не взаимно однозначен.

inverse

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

inverse(
    y, name='inverse'
)

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

Аргументы
y Tensor. Вход для вычисления "обратного".
name Имя для присвоения этому оператору.
Возвращает
Tensor, если этот bijector взаимно однозначен. Если не взаимно однозначен, возвращает 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/Permute

Spec-Zone.ru

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