Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить