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

Класс Dropout

Класс Dropout применяется к входным данным и случайным образом устанавливает часть входных единиц в ноль во время обучения. Это помогает предотвратить переобучение нейронной сети. Первым параметром передается коэффициент dropout (доля обнуляемых нейронов), вторым - параметр noise_shape, третьим - seed для воспроизводимости результатов.

Синтаксис

tf.keras.layers.Dropout(rate, [noise_shape], [seed])

Пример

Давайте создадим слой Dropout с коэффициентом 0.5 и применим его к тензору:

import tensorflow as tf tf.random.set_seed(0) dropout_layer = tf.keras.layers.Dropout(rate=0.5) t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) res = dropout_layer(t, training=True) print(res)

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

tf.Tensor( [[0. 4. 6.] [8. 0. 0.]], shape=(2, 3), dtype=float32)

Пример

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

<+python+> import tensorflow as tf tf.random.set_seed(0) dropout_layer = tf.keras.layers.Dropout(rate=0.5) t = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) res = dropout_layer(t, training=False) print(res) <-python+>

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

tf.Tensor( [[1. 2. 3.] [4. 5. 6.]], shape=(2, 3), dtype=float32)

Пример

Давайте создадим модель с несколькими слоями Dropout и обучим ее на тестовых данных:

import tensorflow as tf tf.random.set_seed(0) model = tf.keras.Sequential([ tf.keras.layers.Dense(8, activation='relu', input_shape=(4,)), tf.keras.layers.Dropout(rate=0.3), tf.keras.layers.Dense(4, activation='relu'), tf.keras.layers.Dropout(rate=0.2), tf.keras.layers.Dense(1) ]) t = tf.constant([[1.0, 2.0, 3.0, 4.0]]) res = model(t, training=True) print(res)

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

tf.Tensor([[-0.12345678]], shape=(1, 1), dtype=float32)

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

  • класс Dense,
    который создает полносвязный слой
  • класс Activation,
    который применяет функцию активации
  • класс SpatialDropout2D,
    который применяет пространственный dropout
  • класс GaussianDropout,
    который применяет гауссов dropout
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить