РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
250 of 824 menu

Класс GaussianNoise

Класс GaussianNoise применяется к данным в качестве слоя нейронной сети. Во время обучения слой добавляет к входному тензору случайный шум, распределенный по нормальному закону с нулевым средним. Первым параметром передается стандартное отклонение stddev, которое задает интенсивность шума. Во время инференса шум не добавляется, поэтому слой действует как тождественное преобразование.

Такой слой помогает регуляризовать модель и снижает риск переобучения, делая сеть более устойчивой к небольшим искажениям входных данных. Шум добавляется только на этапе обучения, что важно учитывать при построении и оценке модели.

Синтаксис

tf.keras.layers.GaussianNoise(stddev, **kwargs)

Пример

Давайте создадим слой шума с отклонением 0.1 и применим его к тензору:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.GaussianNoise(0.1) t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0]) res = layer(t, training=True) print(res)

Результат выполнения кода:

tf.Tensor([1.0692536 2.0498471 3.030734 3.9683185 4.995864 ], shape=(5,), dtype=float32)

Пример

Давайте сравним поведение слоя во время обучения и во время инференса:

import tensorflow as tf tf.random.set_seed(0) layer = tf.keras.layers.GaussianNoise(0.2) t = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0]) train_res = layer(t, training=True) infer_res = layer(t, training=False) print(train_res) print(infer_res)

Результат выполнения кода:

tf.Tensor([1.1385071 2.0996943 3.0614681 3.936637 4.991728 ], shape=(5,), dtype=float32) tf.Tensor([1. 2. 3. 4. 5.], shape=(5,), dtype=float32)

Пример

Давайте встроим слой шума в модель и посмотрим, как он влияет на форму выходных данных:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Input(shape=(5,)), tf.keras.layers.GaussianNoise(0.1), tf.keras.layers.Dense(3) ]) t = tf.constant([[1.0, 2.0, 3.0, 4.0, 5.0]]) res = model(t, training=True) print(res)

Результат выполнения кода:

tf.Tensor([[-0.07700163 0.26376718 -0.08461171]], shape=(1, 3), dtype=float32)

Смотрите также

  • слой Dropout,
    который случайно отключает нейроны во время обучения
  • слой GaussianDropout,
    который умножает вход на гауссов шум
  • слой AlphaDropout,
    который сохраняет среднее и дисперсию входных данных
  • слой ActivityRegularization,
    который штрафует активность слоя
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить