Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.bijectors.Reshape

Изменяет форму event_shape Tensor.

Унаследован от: Bijector

tf.contrib.distributions.bijectors.Reshape(
    event_shape_out, event_shape_in=(-1,), validate_args=False, name=None
)

Семантика в целом соответствует tf.reshape(), с некоторыми отличиями:

  • Пользователь должен указать форму входных и выходных данных, чтобы преобразование можно было обратить. Если форма входных данных не указана, по умолчанию предполагается векторный вход, т.е. event_shape_in = (-1,).
  • Биджектор Reshape автоматически выполняет трансляцию по левым измерениям своего входа (sample_shape и batch_shape); только правые event_ndims_in измерения преобразуются. Количество измерений для изменения формы выводится из предоставленной event_shape_in (event_ndims_in = len(event_shape_in)).

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

import tensorflow_probability as tfp
tfb = tfp.bijectors

r = tfb.Reshape(event_shape_out=[1, -1])

r.forward([3., 4.])    # shape [2]
# ==> [[3., 4.]]       # shape [1, 2]

r.forward([[1., 2.], [3., 4.]])  # shape [2, 2]
# ==> [[[1., 2.]],
#      [[3., 4.]]]   # shape [2, 1, 2]

r.inverse([[3., 4.]])  # shape [1,2]
# ==> [3., 4.]         # shape [2]

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

r.inverse_log_det_jacobian(any_value)
# ==> 0.
Аргументы
event_shape_out Вектор-подобный int Tensor, представляющий форму события преобразованного выхода.
event_shape_in Необязательная вектор-подобная форма int Tensor, представляющая форму события входных данных. Это необходимо для определения обратных операций; значение по умолчанию (-1,) предполагает векторный вход.
validate_args Python-значение, указывающее, следует ли проверять корректность аргументов.
name Python-строка, имя, присвоенное операциям, управляемым этим объектом.
Исключения
TypeError если у event_shape_in или event_shape_out есть нецелые dtype.
ValueError если у event_shape_in или event_shape_out есть невекторная форма (rank > 1), или если их размеры не совпадают.
Атрибуты
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'
)

Возвращает вычисление прямой 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'
)

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

Аргументы
input_shape Tensor, вектор, указывающий форму события, переданный в функцию forward.
name имя, которое нужно дать операции
Возвращает
forward_event_shape_tensor Tensor, вектор, указывающий форму события после применения 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'
)

Возвращает (лог o det o Якобиан o обратное)(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/Reshape

Spec-Zone.ru

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