Spec-Zone.ru › TensorFlow 1.15

tf.contrib.distributions.ConditionalTransformedDistribution

Преобразованное распределение, позволяющее использовать внутреннее условное задание.

Наследуется от: ConditionalDistribution, TransformedDistribution

tf.contrib.distributions.ConditionalTransformedDistribution(
    distribution, bijector=None, batch_shape=None, event_shape=None,
    validate_args=False, name=None
)
Аргументы
distribution Экземпляр базового распределения для преобразования. Обычно экземпляр Distribution.
bijector Объект, отвечающий за вычисление преобразования. Обычно экземпляр Bijector. None означает Identity().
batch_shape Вектор Tensor, который переопределяет distribution batch_shape; допустимо только если distribution.is_scalar_batch().
event_shape Вектор Tensor, который переопределяет distribution event_shape; допустимо только если distribution.is_scalar_event().
validate_args Python-объект bool, по умолчанию False. При True параметрах распределения проверяются на корректность, несмотря на возможную деградацию производительности во время выполнения. При False недопустимые входные данные могут бесшумно привести к неправильным результатам.
name Python-строка str с префиксом для операций, созданных этим классом. По умолчанию: bijector.name + distribution.name.
Атрибуты
allow_nan_stats Python-объект bool, описывающий поведение при неопределенном статистическом показателе.

Статистики возвращают +/- бесконечность, когда это имеет смысл. Например, дисперсия распределения Коши равна бесконечности. Однако иногда статистика неопределена, например, если плотность распределения не достигает максимума в области определения распределения, мода неопределена. Если среднее значение неопределено, то по определению дисперсия также неопределена. Например, среднее значение распределения Стьюдента для df = 1 неопределено (нет ясного способа сказать, что это либо + или - бесконечность), поэтому дисперсия = E[(X - среднее)**2] также неопределена.

batch_shape Форма одного образца из одного индекса события в виде TensorShape.

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

Размерность пакетных данных — индексы независимых, но не идентичных параметризаций этого распределения.

bijector Функция, преобразующая x => y.
distribution Базовое распределение, p(x).
dtype DType Tensors, обрабатываемые этим Distribution.
event_shape Форма одного образца из одного пакета в виде TensorShape.

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

name Имя, добавляемое в префикс всех операций, созданных этим Distribution.
parameters Словарь параметров, используемых для создания этого Distribution.
reparameterization_type Описание того, как образцы из распределения перепараметризуются.

В настоящее время это один из статических экземпляров distributions.FULLY_REPARAMETERIZED или distributions.NOT_REPARAMETERIZED.

validate_args Python-значение, указывающее на включение, возможно, дорогостоящей проверки.

Методы

batch_shape_tensor

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

batch_shape_tensor(
    name='batch_shape_tensor'
)

Форма одного образца из одного индекса события в виде одномерного Tensor.

Размерность пакетных данных — индексы независимых, но не идентичных параметризаций этого распределения.

Аргументы
name имя для операции
Возвращает
batch_shape Tensor.

cdf

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

cdf(
    *args, **kwargs
)

Дополнительная документация из ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Python-словарь имён и значений аргументов, передаваемых биджектору.
  • distribution_kwargs: Python-словарь имён и значений аргументов, передаваемых распределению.

copy

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

copy(
    **override_parameters_kwargs
)

Создаёт глубокую копию распределения.

Примечание: распределение копии может по-прежнему зависеть от исходных аргументов инициализации.
Аргументы
**override_parameters_kwargs Строка/словарь значений аргументов инициализации для переопределения новыми значениями.
Возвращает
distribution Новый экземпляр type(self), инициализированный из объединения self.parameters и override_parameters_kwargs, т.е. dict(self.parameters, **override_parameters_kwargs).

covariance

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

covariance(
    name='covariance'
)

Ковариация.

Ковариация (возможно) определяется только для распределений с нескалярным событием.

Например, для векторного распределения длины k, оно вычисляется как,

Cov[i, j] = Covariance(X_i, X_j) = E[(X_i - E[X_i]) (X_j - E[X_j])]

где Cov — (пакет) k x k матрица, 0 <= (i, j) < k, и E обозначает математическое ожидание.

В альтернативном варианте, для невекторных многомерных распределений (например, матричных, Вишарта), Covariance вернёт (пакет) матриц при некотором векторизации событий, т.е.,

Cov[i, j] = Covariance(Vec(X)_i, Vec(X)_j) = [as above]

где Cov — (пакет) k' x k' матриц, 0 <= (i, j) < k' = reduce_prod(event_shape), и Vec — некоторая функция, сопоставляющая индексы размерностей событий этого распределения с индексами вектора длины k'.

Аргументы
name Python-строка, добавляемая в префикс имён операций, созданных этой функцией.
Возвращает
covariance Вещественное значение Tensor с формой [B1, ..., Bn, k', k'] , где первые n измерения — координаты пакетных данных и k' = reduce_prod(self.event_shape).

cross_entropy

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

cross_entropy(
    other, name='cross_entropy'
)

Вычисляет (энтропию Шеннона) кросс-энтропию.

Обозначим это распределение (self) как P и распределение other как Q. Предполагая, что P, Q абсолютно непрерывны относительно друг друга и допускают плотности p(x) dr(x) и q(x) dr(x), (энтропия Шеннона) кросс-энтропия определяется как:

H[P, Q] = E_p[-log q(X)] = -int_F p(x) log q(x) dr(x)

где F обозначает область определения случайной величины X ~ P.

Аргументы
other Экземпляр tfp.distributions.Distribution.
name Python-строка, добавляемая в префикс имён операций, созданных этой функцией.
Возвращает
cross_entropy Вещественное значение Tensor с формой [B1, ..., Bn] представляющей собой разные вычисления (энтропии Шеннона) кросс-энтропии.

entropy

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

entropy(
    name='entropy'
)

Энтропия Шеннона в натах.

event_shape_tensor

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

event_shape_tensor(
    name='event_shape_tensor'
)

Форма одного образца из одного пакета в виде одномерного целого числа Tensor.

Аргументы
name имя для операции
Возвращает
event_shape Tensor.

is_scalar_batch

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

is_scalar_batch(
    name='is_scalar_batch'
)

Указывает, что batch_shape == [].

Аргументы
name Python str добавляется в качестве префикса к именам операций, созданных этой функцией.
Возвращает
is_scalar_batch bool скаляр Tensor.

is_scalar_event

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

is_scalar_event(
    name='is_scalar_event'
)

Указывает, что event_shape == [].

Аргументы
name Python str добавляется в качестве префикса к именам операций, созданных этой функцией.
Возвращает
is_scalar_event bool скаляр Tensor.

kl_divergence

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

kl_divergence(
    other, name='kl_divergence'
)

Вычисляет расстояние Кульбака—Лайблера.

Обозначим данное распределение (self) как p, а распределение other как q. Предполагая, что p, q абсолютно непрерывны относительно меры отсчета r, расстояние Кульбака—Лайблера определяется как:

KL[p, q] = E_p[log(p(X)/q(X))]
         = -int_F p(x) log q(x) dr(x) + int_F p(x) log p(x) dr(x)
         = H[p, q] - H[p]

где F обозначает область значений случайной величины X ~ p, H[., .] обозначает кросс-энтропию (по Шеннону), а H[.] обозначает энтропию (по Шеннону).

Аргументы
other экземпляр tfp.distributions.Distribution.
name Python str добавляется в качестве префикса к именам операций, созданных этой функцией.
Возвращает
kl_divergence self.dtype Tensor с формой [B1, ..., Bn], представляющей n различные вычисления расстояния Кульбака—Лайблера.

log_cdf

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

log_cdf(
    *args, **kwargs
)

Дополнительная документация из ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Python словарь имен/значений аргументов, переданных биектору.
  • distribution_kwargs: Python словарь имен/значений аргументов, переданных распределению.

log_prob

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

log_prob(
    *args, **kwargs
)

Дополнительная документация из ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Python словарь имен/значений аргументов, переданных биектору.
  • distribution_kwargs: Python словарь имен/значений аргументов, переданных распределению.

log_survival_function

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

log_survival_function(
    *args, **kwargs
)

Дополнительная документация из ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Python словарь имен/значений аргументов, переданных биектору.
  • distribution_kwargs: Python словарь имен/значений аргументов, переданных распределению.

mean

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

mean(
    name='mean'
)

Среднее значение.

mode

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

mode(
    name='mode'
)

Мода.

param_shapes

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

@classmethod
param_shapes(
    sample_shape, name='DistributionParamShapes'
)

Формы параметров с учётом желаемой формы вызова sample().

Это метод класса, который описывает, какие пары «ключ-значение» необходимы для создания заданного Distribution, чтобы получить определённую форму в результате вызова sample().

Подклассы должны переопределять метод класса _param_shapes.

Аргументы
sample_shape форма Tensor или список/кортеж Python. Желаемая форма вызова sample().
name имя для добавления в префикс операций.
Возвращает
соответствие имени параметра формам Tensor.

param_static_shapes

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

@classmethod
param_static_shapes(
    sample_shape
)

param_shapes со статическими (т. е. TensorShape) формами.

Это метод класса, который описывает, какие пары «ключ-значение» необходимы для создания заданного Distribution, чтобы получить определённую форму в результате вызова sample(). Предполагается, что форма выборки известна статически.

Подклассы должны переопределить метод класса _param_shapes для возврата тензоров с постоянными значениями, когда в качестве входных данных переданы постоянные значения.

Аргументы
sample_shape форма TensorShape или список/кортеж Python. Желаемая форма вызова sample().
Возвращает
соответствие имени параметра формам TensorShape.
Исключения
ValueError если sample_shape является TensorShape и не полностью определён.

prob

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

prob(
    *args, **kwargs
)

Дополнительная документация из ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Python словарь имен/значений аргументов, переданных биектору.
  • distribution_kwargs: Python словарь имен/значений аргументов, переданных распределению.

quantile

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

quantile(
    value, name='quantile'
)

Функция квантиля. Также известна как «обратная функция распределения» или «функция процентиля».

Для случайной величины X и p in [0, 1], quantile определяется следующим образом:

quantile(p) := x such that P[X <= x] == p
Аргументы
value float или double Tensor.
name Python str добавляется в качестве префикса к именам операций, созданных этой функцией.
Возвращает
quantile массив Tensor формы sample_shape(x) + self.batch_shape с значениями типа self.dtype.

sample

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

sample(
    sample_shape=(), seed=None, name='sample', **condition_kwargs
)
kwargs:
  • **condition_kwargs: Имена аргументов, переданные реализации подкласса.

stddev

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

stddev(
    name='stddev'
)

Среднеквадратическое отклонение.

Среднеквадратическое отклонение определяется как,

stddev = E[(X - E[X])**2]**0.5

где X — случайная величина, связанная с этим распределением, E обозначает математическое ожидание, а stddev.shape = batch_shape + event_shape.

Аргументы
name Python str добавляется в качестве префикса к именам операций, созданных этой функцией.
Возвращаемое значение
stddev Число с плавающей точкой Tensor с формой, идентичной batch_shape + event_shape, то есть такой же, как у self.mean().

survival_function

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

survival_function(
    *args, **kwargs
)

Дополнительная документация от ConditionalTransformedDistribution:

kwargs:
  • bijector_kwargs: Словарь Python с именами/значениями аргументов, передаваемых биджектору.
  • distribution_kwargs: Словарь Python с именами/значениями аргументов, передаваемых распределению.

variance

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

variance(
    name='variance'
)

Дисперсия.

Дисперсия определяется как,

Var = E[(X - E[X])**2]

где X — случайная величина, связанная с этим распределением, E обозначает математическое ожидание, а Var.shape = batch_shape + event_shape.

Аргументы
name Префикс Python str к именам операций, созданных этой функцией.
Возвращаемое значение
variance Число с плавающей точкой Tensor с формой, идентичной batch_shape + event_shape, то есть такой же, как у self.mean().

© 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/ConditionalTransformedDistribution

Spec-Zone.ru

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