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

Класс Dropout3d

Класс Dropout3d применяет регуляризацию dropout к трехмерным данным. Во время обучения он случайно обнуляет целые каналы (глубинные срезы) входного тензора с вероятностью p. Это помогает предотвратить переобучение моделей, работающих с объемными данными, такими как видео или трехмерные изображения. Основным параметром является вероятность отключения каналов, остальные параметры управляют режимом работы и поведением во время оценки.

Синтаксис

torch.nn.Dropout3d(p=0.5, inplace=False)

Параметры класса:

  • p - вероятность обнуления канала (по умолчанию 0.5)
  • inplace - выполнять операцию на месте (по умолчанию False)

Пример

Давайте создадим слой Dropout3d с вероятностью 0.3 и применим его к трехмерному тензору:

import torch torch.manual_seed(0) dropout = torch.nn.Dropout3d(p=0.3) t = torch.randn(1, 2, 3, 4, 5) res = dropout(t) print(res.shape)

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

torch.Size([1, 2, 3, 4, 5])

Пример

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

import torch torch.manual_seed(0) dropout = torch.nn.Dropout3d(p=0.5) t = torch.ones(1, 2, 2, 2, 2) res = dropout(t) print(res)

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

tensor([[[[[0., 0.], [0., 0.]], [[0., 0.], [0., 0.]]], [[[2., 2.], [2., 2.]], [[2., 2.], [2., 2.]]]]])

Пример

При использовании Dropout3d в режиме оценки слой не применяет регуляризацию и масштабирует данные. Убедимся в этом:

import torch torch.manual_seed(0) dropout = torch.nn.Dropout3d(p=0.5) dropout.eval() t = torch.ones(1, 2, 2, 2, 2) res = dropout(t) print(res)

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

tensor([[[[[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]]], [[[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]]]]])

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

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