Spec-Zone.ru › TensorFlow 1.15

tf.keras.layers.BatchNormalization

Просмотреть исходный код на GitHub

Базовый класс слоя пакетной нормализации (Ioffe и Szegedy, 2014).

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительных сведений.

tf.compat.v1.keras.layers.BatchNormalization

tf.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 Численное значение. По умолчанию 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 (кортеж целых чисел, не включая ось образцов) при использовании этого слоя в качестве первого слоя в модели.

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

Форма такая же, как у входных данных.

Ссылки:

  • Batch Normalization: Ускорение обучения глубоких нейронных сетей путем уменьшения смещения внутренних ковариаций

{ {ПРИМЕЧАНИЕ_АТРИБУТА_НАСТРОЙКИ} }

© 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/keras/layers/BatchNormalization

Spec-Zone.ru

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