tf.compat.v2.keras.layers.BatchNormalization
Базовый класс слоя пакетной нормализации (Ioffe и Szegedy, 2014).
tf.compat.v2.keras.layers.BatchNormalization(
axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True,
beta_initializer='zeros', gamma_initializer='ones',
moving_mean_initializer='zeros', moving_variance_initializer='ones',
beta_regularizer=None, gamma_regularizer=None, beta_constraint=None,
gamma_constraint=None, renorm=False, renorm_clipping=None, renorm_momentum=0.99,
fused=None, trainable=True, virtual_batch_size=None, adjustment=None, name=None,
**kwargs
)
Нормализует активации предыдущего слоя в каждом пакете, т.е. применяет преобразование, которое поддерживает среднее значение активации близким к 0, а стандартное отклонение активации близким к 1.
| Аргументы | |
|---|---|
axis | Целое число, ось, которая должна быть нормализована (обычно ось признаков). Например, после слоя Conv2D с data_format="channels_first", установите axis=1 в BatchNormalization. |
momentum | Импульс для скользящего среднего. |
epsilon | Малое число, добавляемое к дисперсии для избежания деления на ноль. |
center | Если True, добавляет смещение beta к нормализованному тензору. Если False, beta игнорируется. |
scale | Если True, умножает на gamma. Если False, gamma не используется. Когда следующий слой является линейным (например, nn.relu), это можно отключить, так как масштабирование будет выполнено следующим слоем. |
beta_initializer | Инициализатор для веса beta. |
gamma_initializer | Инициализатор для веса gamma. |
moving_mean_initializer | Инициализатор для скользящего среднего. |
moving_variance_initializer | Инициализатор для скользящей дисперсии. |
beta_regularizer | Необязательный регуляризатор для веса beta. |
gamma_regularizer | Необязательный регуляризатор для веса gamma. |
beta_constraint | Необязательное ограничение для веса beta. |
gamma_constraint | Необязательное ограничение для веса gamma. |
renorm | Нужно ли использовать пакетную ренормализацию (https://arxiv.org/abs/1702.03275). Это добавляет дополнительные переменные во время обучения. Вывод одинаков для любого значения этого параметра. |
renorm_clipping | Словарь, который может сопоставлять ключи 'rmax', 'rmin', 'dmax' со скалярными Tensors, используемыми для ограничения исправления renorm. Исправление (r, d) используется как corrected_value = normalized_value * r + d, с r ограничено [rmin, rmax], и d ограничено [-dmax, dmax]. Отсутствующие rmax, rmin, dmax устанавливаются соответственно в inf, 0, inf. |
renorm_momentum | Импульс, используемый для обновления скользящих средних и стандартных отклонений с помощью renorm. В отличие от momentum, это влияет на обучение и не должно быть слишком маленьким (что добавит шум) или слишком большим (что даст устаревшие оценки). Обратите внимание, что momentum все еще применяется для получения средних и дисперсий для вывода. |
fused | Если True, использовать более быструю объединенную реализацию или поднять ValueError, если объединенную реализацию нельзя использовать. Если None, использовать более быструю реализацию, если возможно. Если False, не использовать объединенную реализацию. |
trainable | Булево значение, если True переменные будут помечены как обучаемые. |
virtual_batch_size | Функция int. По умолчанию virtual_batch_size равно None, что означает, что пакетная нормализация выполняется по всему пакету. Когда virtual_batch_size не None, вместо этого выполняется «Ghost Batch Normalization», которая создает виртуальные подпакеты, которые нормализуются по отдельности (с общими gamma, beta и скользящими статистиками). Необходимо разделить фактический размер пакета во время выполнения. |
adjustment | Функция, принимающая Tensor, содержащую (динамическую) форму тензора входных данных, и возвращающая пару (масштаб, смещение) для применения к нормализованным значениям (до gamma и beta), только во время обучения. Например, если axis==-1, adjustment = lambda shape: ( tf.random.uniform(shape[-1:], 0.93, 1.07), tf.random.uniform(shape[-1:], -0.1, 0.1)) будет масштабировать нормализованное значение на максимум на 7% вверх или вниз, затем сместит результат на максимум на 0,1 (с независимым масштабированием и смещением для каждого признака, но общим для всех примеров), а затем применит gamma и/или beta. Если None, никакого корректирования не выполняется. Не может быть указано, если задан virtual_batch_size. |
Аргументы вызова:
-
inputs: Входной тензор (любого ранга). -
training: Булево значение Python, указывающее, должен ли слой работать в режиме обучения или в режиме вывода.-
training=True: Слой будет нормализовать свои входные данные, используя среднее и дисперсию текущего пакета входных данных. -
training=False: Слой будет нормализовать свои входные данные, используя среднее и дисперсию своих скользящих статистик, вычисленных во время обучения.
-
Форма входных данных:
Произвольная. Используйте ключевой аргумент input_shape (кортеж целых чисел, не включая ось примеров) при использовании этого слоя в качестве первого слоя в модели.
Форма выходных данных:
Такая же форма, как у входных данных.
Ссылки:
{ {TRAINABLE_ATTRIBUTE_NOTE} }
© 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/compat/v2/keras/layers/BatchNormalization