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

Класс Sequential

Класс Sequential представляет собой контейнер, который объединяет несколько слоёв нейронной сети в последовательную цепочку. Данные проходят через слои один за другим: выход предыдущего слоя становится входом для следующего. Первым параметром конструктор принимает список слоёв, переданных в виде аргументов или списка.

Синтаксис

torch.nn.Sequential(*layers)

Пример

Давайте создадим простую последовательную модель из двух линейных слоёв с функцией активации ReLU между ними:

import torch import torch.nn as nn model = nn.Sequential( nn.Linear(10, 20), nn.ReLU(), nn.Linear(20, 5) ) print(model)

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

Sequential( (0): Linear(in_features=10, out_features=20, bias=True) (1): ReLU() (2): Linear(in_features=20, out_features=5, bias=True) )

Пример

Можно создать модель, передав слои в виде списка через оператор распаковки:

import torch import torch.nn as nn layers = [ nn.Linear(5, 10), nn.Sigmoid(), nn.Linear(10, 3) ] model = nn.Sequential(*layers) t = torch.randn(1, 5) res = model(t) print(res.shape)

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

torch.Size([1, 3])

Пример

После создания модели к слоям можно обращаться по индексу или имени (по умолчанию - порядковый номер):

import torch import torch.nn as nn model = nn.Sequential( nn.Linear(8, 16), nn.Tanh(), nn.Linear(16, 4) ) first_layer = model[0] print(first_layer) last_layer = model[2] print(last_layer)

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

Linear(in_features=8, out_features=16, bias=True) Linear(in_features=16, out_features=4, bias=True)

Пример

Подадим случайные данные на вход модели и получим результат прямого прохода:

import torch import torch.nn as nn torch.manual_seed(0) model = nn.Sequential( nn.Linear(4, 8), nn.ReLU(), nn.Linear(8, 2) ) t = torch.randn(3, 4) res = model(t) print(res)

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

tensor([[-0.0598, -0.1504], [-0.5281, -0.3645], [ 0.5645, -0.2264]], grad_fn=<AddmmBackward0>)

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

  • метод append,
    который добавляет новый слой в конец последовательности
  • метод insert,
    который вставляет слой на указанную позицию
  • метод extend,
    который расширяет последовательность несколькими слоями
  • метод pop,
    который удаляет последний слой из последовательности
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить