tf.contrib.layers.layer_norm
Добавляет слой нормализации по слоям.
tf.contrib.layers.layer_norm(
inputs, center=True, scale=True, activation_fn=None, reuse=None,
variables_collections=None, outputs_collections=None, trainable=True,
begin_norm_axis=1, begin_params_axis=-1, scope=None
)
Основано на статье:
"Нормализация по слоям"
Джимми Лей Ба, Джейми Райан Кирос, Джеффри Хинтон
https://arxiv.org/abs/1607.06450
Может использоваться как функция нормализации для conv2d и fully_connected.
Для тензора inputs ранга R, вычисляются моменты, и нормализация выполняется по осям begin_norm_axis ... R - 1. Масштабирование и центрирование, если запрошено, выполняется по осям begin_params_axis .. R - 1.
По умолчанию, begin_norm_axis = 1 и begin_params_axis = -1, что означает, что нормализация выполняется по всем осям, кроме первой (первая ось, если inputs равно NHWC), в то время как параметры beta и gamma для обучения вычисляются для правой оси (правая ось, если inputs равно NHWC). Масштабирование и перецентровка выполняются путем трансляции параметров beta и gamma с нормализованным тензором.
Форматы beta и gamma равны inputs.shape[begin_params_axis:], и эта часть формы ввода должна быть полностью определена.
| Аргументы | |
|---|---|
inputs | Тензор ранга R. Нормализация выполняется по осям begin_norm_axis ... R - 1, а параметры центрирования и масштабирования вычисляются по begin_params_axis ... R - 1. |
center | Если True, добавляет смещение beta к нормализованному тензору. Если False, beta игнорируется. |
scale | Если True, умножает на gamma. Если False, gamma не используется. Когда следующий слой линейный (например, nn.relu), это можно отключить, так как масштабирование может быть выполнено следующим слоем. |
activation_fn | Функция активации, по умолчанию None, чтобы пропустить ее и сохранить линейную активацию. |
reuse | Нужно ли повторно использовать слой и его переменные. Для возможности повторного использования необходимо указать область действия слоя. |
variables_collections | Дополнительные коллекции для переменных. |
outputs_collections | Коллекции для добавления выходов. |
trainable | Если True также добавляет переменные в коллекцию графа GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable). |
begin_norm_axis | Первое измерение нормализации: нормализация будет выполняться по измерениям begin_norm_axis : rank(inputs) |
begin_params_axis | Первое измерение параметра (бета, гамма): параметры масштабирования и центрирования будут иметь измерения begin_params_axis : rank(inputs) и будут транслироваться с нормализованными входными данными соответственно. |
scope | Необязательная область действия для variable_scope. |
| Возвращаемое значение | |
|---|---|
Объект Tensor , представляющий результат операции, имеющий такую же форму и тип данных, как inputs. |
| Исключения | |
|---|---|
ValueError | Если ранг inputs неизвестен во время построения графа или если inputs.shape[begin_params_axis:] не полностью определён во время построения графа. |
© 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/layer_norm