Spec-Zone.ru › TensorFlow 1.15

tf.layers.BatchNormalization

Слой пакетной нормализации из http://arxiv.org/abs/1502.03167

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

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

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

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

tf.compat.v1.layers.BatchNormalization

tf.layers.BatchNormalization(
    axis=-1, momentum=0.99, epsilon=0.001, center=True, scale=True,
    beta_initializer=tf.zeros_initializer(),
    gamma_initializer=tf.ones_initializer(),
    moving_mean_initializer=tf.zeros_initializer(),
    moving_variance_initializer=tf.ones_initializer(), 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
)

"Пакетная нормализация: ускорение обучения глубоких сетей за счет уменьшения внутреннего смещения ковариатов"

Сергей Иоффе, Кристиан Шзегеди

API Keras обрабатывают обновления BatchNormalization для moving_mean и moving_variance как часть своих циклов fit() и evaluate(). Однако, если используется пользовательский цикл обучения с экземпляром Model, эти обновления необходимо явно включить. Вот простой пример того, как это можно сделать:

# model is an instance of Model that contains BatchNormalization layer.
update_ops = model.get_updates_for(None) + model.get_updates_for(features)
train_op = optimizer.minimize(loss)
train_op = tf.group([train_op, update_ops])
Аргументы
axis Целое число или список целых чисел, ось или оси, которые должны быть нормализованы, обычно ось(и) признаков. Например, после слоя Conv2D со значением data_format="channels_first", установите axis=1. Если указан список осей, каждая ось в axis будет нормализована одновременно. Значение по умолчанию — -1, использующее последнюю ось. Примечание: при использовании многоосной пакетной нормализации переменные beta, gamma, moving_mean, и moving_variance имеют тот же ранг, что и входной тензор, с размером измерения 1 во всех сокращенных (не осевых) измерениях.
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 после обновления с помощью Optimizer (например, используется для реализации ограничений нормы или ограничений значений для весов слоя). Функция должна принимать в качестве входных данных непроектируемую переменную и возвращать спроектированную переменную (которая должна иметь ту же форму). Ограничения небезопасны при асинхронном распределенном обучении.
gamma_constraint Необязательная функция проекции, которая применяется к весу gamma после обновления с помощью Optimizer.
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 Если None или True, используйте более быструю, интегрированную реализацию, если это возможно. Если False, используйте рекомендуемую системой реализацию.
trainable Булево значение, если True также добавляет переменные в коллекцию графа GraphKeys.TRAINABLE_VARIABLES (см. tf.Variable).
virtual_batch_size Целое число. По умолчанию virtual_batch_size равно None, что означает, что пакетная нормализация выполняется по всему пакету. Когда virtual_batch_size не равно None, выполняется «дублирующая пакетная нормализация», которая создает виртуальные подпакеты, которые нормализуются по отдельности (с общими gamma, beta и скользящими статистическими данными). Необходимо разделить фактический размер пакета во время выполнения.
adjustment Функция, принимающая Tensor, содержащую (динамическую) форму входного тензора, и возвращающая пару (масштаб, смещение) для применения к нормализованным значениям (перед gamma и beta), только во время обучения. Например, если ось == -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.
name Строка, имя слоя.
Атрибуты
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/layers/BatchNormalization

Spec-Zone.ru

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