Семантика в целом соответствует tf.reshape(), с некоторыми отличиями:
Пользователь должен указать форму входных и выходных данных, чтобы преобразование можно было обратить. Если форма входных данных не указана, по умолчанию предполагается векторный вход, т.е. event_shape_in = (-1,).
Биджектор Reshape автоматически выполняет трансляцию по левым измерениям своего входа (sample_shape и batch_shape); только правые event_ndims_in измерения преобразуются. Количество измерений для изменения формы выводится из предоставленной event_shape_in (event_ndims_in = len(event_shape_in)).
Вектор-подобный intTensor, представляющий форму события преобразованного выхода.
event_shape_in
Необязательная вектор-подобная форма intTensor, представляющая форму события входных данных. Это необходимо для определения обратных операций; значение по умолчанию (-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 будут проверены.
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}, или это неинъективный биджектор.
Обратите внимание, что 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.