Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.bijectors.Softplus

Биджектор, который вычисляет Y = g(X) = Log[1 + exp(X)].

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

tf.contrib.distributions.bijectors.Softplus(
    hinge_softness=None, validate_args=False, name='softplus'
)

Функция softplus Bijector обладает следующими полезными свойствами:

  • Областью определения являются положительные вещественные числа
  • softplus(x) approx x, для больших x, поэтому она не переполняется так легко, как функция Exp Bijector.

Необязательный параметр hinge_softness изменяет переход в нуле. При значении hinge_softness = c, биджектор определяется как:

Для больших x >> 1, c * Log[1 + exp(x / c)] approx c * Log[exp(x / c)] = x, поэтому поведение для больших x такое же, как и у стандартной функции softplus.

Когда c > 0 приближается к 0 справа, f_c(x) становится всё менее плавной, приближаясь к max(0, x).

  • c = 1 является значением по умолчанию.
  • c > 0 но маленькое значение означает f(x) approx ReLu(x) = max(0, x).
  • c < 0 меняет знак и отражается относительно y-axis: f_{-c}(x) = -f_c(-x).
  • c = 0 приводит к небиективному преобразованию и вызывает исключение.

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

# Create the Y=g(X)=softplus(X) transform which works only on Tensors with 1
# batch ndim and 2 event ndims (i.e., vector of matrices).
softplus = Softplus()
x = [[[1., 2],
      [3, 4]],
     [[5, 6],
      [7, 8]]]
log(1 + exp(x)) == softplus.forward(x)
log(exp(x) - 1) == softplus.inverse(x)
Примечание: log(.) и exp(.) применяются поэлементно, но якобиан вычисляется по всему пространству событий.
Атрибуты
dtype тип данных Tensor преобразуемых этим распределением.
forward_min_event_ndims Возвращает минимальное число измерений, на которых bijector.forward работает.
graph_parents Возвращает список graph_parents этого Bijector.
hinge_softness
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 Имя для данной операции.
Возвращает
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, если этот биджектор инъективен. Если не инъективен, это не реализовано.
Исключения
TypeError если self.dtype указан, а y.dtype не self.dtype.
NotImplementedError если ни _forward_log_det_jacobian ни {_inverse, _inverse_log_det_jacobian} не реализованы, или это неинъективный биджектор.

inverse

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

inverse(
    y, name='inverse'
)

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

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

Spec-Zone.ru

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