Spec-Zone.ru › TensorFlow

tf.keras.layers.Normalization

Слой предобработки, который нормализует непрерывные признаки.

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

tf.keras.layers.Normalization(
    axis=-1, mean=None, variance=None, invert=False, **kwargs
)

Используется в ноутбуках

Используется в руководстве Используется в учебниках
  • Миграция `tf.feature_column` в слои предобработки Keras
  • Работа со слоями предобработки
  • Загрузка pandas DataFrame
  • Базовая регрессия: Предсказание эффективности топлива
  • Загрузка данных CSV
  • Простая распознавание аудио: Распознавание ключевых слов
  • Классификация структурированных данных с помощью слоев предобработки Keras

Этот слой смещает и масштабирует входные данные в распределение, центрированное около 0 со стандартным отклонением 1. Он достигает этого, предварительно вычисляя среднее и дисперсию данных и вызывая (input - mean) / sqrt(var) во время выполнения.

Значения среднего и дисперсии для слоя должны быть либо заданы при создании, либо вычислены с помощью adapt(). adapt() вычислит среднее и дисперсию данных и сохранит их в качестве весов слоя. adapt() следует вызывать перед fit(), evaluate() или predict().

Аргументы
axis Целое число, кортеж целых чисел или None. Ось или оси, для которых должно быть отдельное среднее и дисперсия для каждого индекса в форме. Например, если форма — (None, 5) и axis=1, слой отслеживает 5 отдельных значений среднего и дисперсии для последней оси. Если axis установлено в None, слой будет нормализовывать все элементы ввода по скалярному среднему и дисперсии. При -1 предполагается, что последняя ось входных данных — это размерность признака, и она нормализуется по индексу. Обратите внимание, что в конкретном случае входных скалярных данных с пакетной осью, единственная ось — это ось пакета, по умолчанию будет нормализовать каждый индекс в пакете отдельно. В этом случае рассмотрите возможность передачи axis=None. По умолчанию -1.
mean Значение среднего, используемое при нормализации. Переданное значение(я) будет транслироваться в форму сохранённых осей выше; если значение(я) не могут быть транслированы, произойдет ошибка при вызове метода build() этого слоя.
variance Значение дисперсии, используемое при нормализации. Переданное значение(я) будет транслироваться в форму сохранённых осей выше; если значение(я) не могут быть транслированы, произойдет ошибка при вызове метода build() этого слоя.
invert Если True, этот слой применит обратное преобразование к своим входным данным: он вернёт нормализованный ввод в исходную форму.

Примеры:

Вычисление глобального среднего и дисперсии путем анализа набора данных в adapt().

adapt_data = np.array([1., 2., 3., 4., 5.], dtype='float32')
input_data = np.array([1., 2., 3.], dtype='float32')
layer = keras.layers.Normalization(axis=None)
layer.adapt(adapt_data)
layer(input_data)
array([-1.4142135, -0.70710677, 0.], dtype=float32)

Вычисление среднего и дисперсии для каждого индекса на последней оси.

adapt_data = np.array([[0., 7., 4.],
                       [2., 9., 6.],
                       [0., 7., 4.],
                       [2., 9., 6.]], dtype='float32')
input_data = np.array([[0., 7., 4.]], dtype='float32')
layer = keras.layers.Normalization(axis=-1)
layer.adapt(adapt_data)
layer(input_data)
array([-1., -1., -1.], dtype=float32)

Прямое задание среднего и дисперсии.

input_data = np.array([[1.], [2.], [3.]], dtype='float32')
layer = keras.layers.Normalization(mean=3., variance=2.)
layer(input_data)
array([[-1.4142135 ],
       [-0.70710677],
       [ 0.        ]], dtype=float32)

Использование слоя для денормализации входных данных (после адаптации слоя).

adapt_data = np.array([[0., 7., 4.],
                       [2., 9., 6.],
                       [0., 7., 4.],
                       [2., 9., 6.]], dtype='float32')
input_data = np.array([[1., 2., 3.]], dtype='float32')
layer = keras.layers.Normalization(axis=-1, invert=True)
layer.adapt(adapt_data)
layer(input_data)
array([2., 10., 8.], dtype=float32)
Атрибуты
input Извлекает тензор(ы) ввода символической операции.

Возвращает только тензор(ы), соответствующие первому вызову операции.

output Извлекает выходной тензор(ы) слоя.

Возвращает только тензор(ы), соответствующие первому вызову операции.

Методы

adapt

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

adapt(
    data
)

Вычисляет среднее и дисперсию значений в наборе данных.

Вызов adapt() на слое Normalization — это альтернатива передаче mean и variance аргументов при создании слоя. Слой Normalization всегда должен либо быть адаптирован к набору данных, либо ему должны быть переданы mean и variance.

Во время adapt() слой вычислит отдельное mean и variance для каждой позиции в каждой оси, заданной аргументом axis. Чтобы вычислить одно mean и variance над входными данными, просто передайте axis=None в слой.

Аргумент
data Данные для обучения. Их можно передать в виде tf.data.Dataset, как массив NumPy или как тензор в формате бэкенда. Если набор данных, то он должен быть пакетным. Keras предположит, что данные пакетные, и если это предположение неверно, среднее и дисперсия могут быть вычислены неправильно.

finalize_state

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

finalize_state()

from_config

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

@classmethod
from_config(
    config
)

Создает слой по его конфигурации.

Этот метод является обратным get_config, способным создать тот же слой из словаря конфигурации. Он не обрабатывает подключение слоев (обрабатывается Network), ни веса (обрабатываются set_weights).

Аргументы
config Словарь Python, обычно вывод get_config.
Возвращает
Экземпляр слоя.

symbolic_call

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

symbolic_call(
    *args, **kwargs
)

© 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/api_docs/python/tf/keras/layers/Normalization

Spec-Zone.ru

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