tf.contrib.layers.GDN
Слой обобщенной дивизивно-нормализующей функции.
Наследуется от: Layer
tf.contrib.layers.GDN(
inverse=False, beta_min=1e-06, gamma_init=0.1, reparam_offset=(2 ** -18),
data_format='channels_last', activity_regularizer=None, trainable=True,
name=None, **kwargs
)
Основано на работах:
"Density Modeling of Images using a Generalized Normalization Transformation"
Johannes Ballé, Valero Laparra, Eero P. Simoncelli
https://arxiv.org/abs/1511.06281
"End-to-end Optimized Image Compression"
Johannes Ballé, Valero Laparra, Eero P. Simoncelli
https://arxiv.org/abs/1611.01704
Реализует функцию активации, которая по сути является многомерным обобщением определённого типа сигмоидальной функции:
y[i] = x[i] / sqrt(beta[i] + sum_j(gamma[j, i] * x[j]))
где i и j пробегают по каналам. Эта реализация никогда не суммирует по пространственным измерениям. Она похожа на локальную нормализацию отклика, но намного гибче, так как beta и gamma являются обучаемыми параметрами.
| Аргументы | |
|---|---|
inverse |
Если False (по умолчанию), вычисляется ответ GDN. Если True, вычисляется ответ IGDN (один шаг итерации фиксированной точки для обратного преобразования GDN; деление заменяется умножением). |
beta_min |
Нижняя граница для бета, чтобы предотвратить численные ошибки, вызывающие квадратный корень из нуля или отрицательных значений. |
gamma_init |
Матрица гамма будет инициализирована как единичная матрица, умноженная на это значение. Если установлено в ноль, слой фактически инициализируется как тождественное преобразование, поскольку бета инициализируется как единица. Хорошее значение по умолчанию находится где-то между 0 и 0,5. |
reparam_offset |
Смещение, добавленное к перепараметризации бета и гамма. Перепараметризация бета и гамма как их квадратных корней замедляет обучение, когда их значения близки к нулю, что желательно, так как малые значения в знаменателе могут привести к ситуации, когда шум градиента на бета/гамма приводит к большому количеству шума в активациях GDN. Однако без смещения мы получим нулевые градиенты, если любые элементы бета или гамма будут точно равны нулю, и, таким образом, обучение может застрять. Чтобы предотвратить это, мы добавляем эту небольшую константу. Значение по умолчанию было эмпирически определено как хорошее начальное значение. Увеличение может потенциально привести к большему шуму градиента в активациях, слишком маленькое может привести к проблемам с числовой точностью. |
data_format |
Формат входного тензора. В настоящее время поддерживаются 'channels_first' и 'channels_last' |
activity_regularizer |
Функция регуляризации для вывода. |
trainable |
Булево значение; если True, также добавьте переменные в коллекцию графа GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable). |
name |
Строка, имя слоя. Слои с одинаковым именем будут использовать общие веса, но в таких случаях требуется reuse=True |
Свойства:
inverse: Булево значение, вычисляется ли GDN (True) или IGDN (False).data_format: Формат входного тензора. В настоящее время поддерживаются'channels_first'и'channels_last'.beta: Параметр бета, как определено выше (1DTensor).gamma: Параметр гамма, как определено выше (2DTensor).
| Атрибуты | |
|---|---|
graph |
ДЕПРЕКАРИРОВАННАЯ ФУНКЦИЯ |
scope_name |
|
© 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/layers/GDN