Spec-Zone.ru › TensorFlow 2.9

tf.keras.layers.experimental.SyncBatchNormalization

Синхронное нормализация и масштабирование входных данных или активаций.

Наследуется от: Layer, Module

tf.keras.layers.experimental.SyncBatchNormalization(
    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,
    **kwargs
)

Применяет пакетную нормализацию к активациям предыдущего слоя в каждом пакете, синхронизируя глобальные статистические данные по всем устройствам, которые обучают модель. Для получения подробной информации о пакетной нормализации см. документацию по слою tf.keras.layers.BatchNormalization.

Если этот слой используется при использовании стратегии tf.distribute для обучения моделей на нескольких устройствах/рабочих узлах, будет вызвана функция allreduce для агрегирования статистических данных о партиях на всех репликах на каждом шаге обучения. Без стратегии tf.distribute этот слой ведет себя как обычный слой tf.keras.layers.BatchNormalization.

Пример использования:

strategy = tf.distribute.MirroredStrategy()

with strategy.scope():
  model = tf.keras.Sequential()
  model.add(tf.keras.layers.Dense(16))
  model.add(tf.keras.layers.experimental.SyncBatchNormalization())
Аргументы
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 Инициализатор для весов бета.
gamma_initializer Инициализатор для весов гамма.
moving_mean_initializer Инициализатор для скользящего среднего.
moving_variance_initializer Инициализатор для скользящей дисперсии.
beta_regularizer Необязательный регуляризатор для весов бета.
gamma_regularizer Необязательный регуляризатор для весов гамма.
beta_constraint Необязательное ограничение для весов бета.
gamma_constraint Необязательное ограничение для весов гамма.

Аргументы вызова:

  • inputs: Входной тензор (любого ранга).
  • training: Булево значение Python, указывающее, должен ли слой работать в режиме обучения или в режиме вывода.
    • training=True: Слой будет нормализовать свои входные данные, используя среднее значение и дисперсию текущей партии входных данных.
    • training=False: Слой будет нормализовать свои входные данные, используя среднее значение и дисперсию своих скользящих статистических данных, полученных во время обучения.

Форма входных данных:

Произвольная. Используйте ключевой аргумент input_shape (кортеж целых чисел, не включая ось образцов), при использовании этого слоя в качестве первого слоя в модели.

Форма выходных данных:

Такая же форма, как и входные данные.

© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.9/api_docs/python/tf/keras/layers/experimental/SyncBatchNormalization

Spec-Zone.ru

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