Spec-Zone.ru › TensorFlow 1.15

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: Параметр бета, как определено выше (1D Tensor).
  • gamma: Параметр гамма, как определено выше (2D Tensor).
Атрибуты
graph ДЕПРЕКАРИРОВАННАЯ ФУНКЦИЯ
Предупреждение: ЭТА ФУНКЦИЯ ДЕПРЕКАРИРОВАНА. Она будет удалена в будущей версии. Инструкции по обновлению: Перестаньте использовать этот атрибут, так как слои tf.layers больше не отслеживают свой граф.
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

Spec-Zone.ru

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