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

Класс Dropout1d

Класс Dropout1d предназначен для регуляризации одномерных данных путём случайного обнуления целых каналов или элементов тензора. Это помогает предотвратить переобучение модели. Первым параметром конструктор принимает вероятность обнуления канала p, которая может принимать значения от 0 до 1. Вторым параметром можно указать режим работы inplace для изменения входного тензора.

Синтаксис

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

Пример

Давайте создадим модуль Dropout1d с вероятностью обнуления 0.5 и применим его к одномерному тензору:

import torch import torch.nn as nn torch.manual_seed(0) dropout = nn.Dropout1d(p=0.5) t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0]) res = dropout(t) print(res)

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

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

Пример

В режиме обучения dropout обнуляет случайные элементы и масштабирует оставшиеся на коэффициент 1/(1-p). В режиме оценки модуль возвращает данные без изменений:

import torch import torch.nn as nn torch.manual_seed(0) dropout = nn.Dropout1d(p=0.3) t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0]) dropout.train() train_res = dropout(t) dropout.eval() eval_res = dropout(t) print(f"Train: {train_res}") print(f"Eval: {eval_res}")

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

Train: tensor([0.0000, 0.0000, 4.2857, 5.7143, 7.1429]) Eval: tensor([1., 2., 3., 4., 5.])

Пример

Dropout1d также может работать с двумерными тензорами (batch_size, channels, features), обнуляя целые каналы:

import torch import torch.nn as nn torch.manual_seed(0) dropout = nn.Dropout1d(p=0.5) t = torch.tensor([ [[1.0, 2.0], [3.0, 4.0]], [[5.0, 6.0], [7.0, 8.0]] ]) res = dropout(t) print(res)

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

tensor([ [[2., 4.], [0., 0.]], [[0., 0.], [14., 16.]] ])

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

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