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`s в слои предобработки Keras
  • Работа со слоями предобработки
  • Загрузка DataFrame pandas
  • Основы регрессии: прогнозирование эффективности использования топлива
  • Загрузка данных 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 или тензор бэкенда в eager-режиме. Если передан набор данных, он должен быть разбит на пакеты. 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