Spec-Zone.ru › PyTorch 2.14

Sequential

class torch.nn.Sequential(*args: Module) [исходный код]
classtorch.nn.Sequential(arg:OrderedDict[str,Module])

Последовательный контейнер.

Модули добавляются в него в том порядке, в котором они передаются конструктору. В качестве альтернативы можно передать OrderedDict модулей. Метод forward() класса Sequential принимает любые входные данные и передаёт их первому содержащемуся в нём модулю. Затем он последовательно передаёт выходные данные каждого модуля на вход следующему и в итоге возвращает выходные данные последнего модуля.

Преимущество Sequential перед ручным вызовом последовательности модулей заключается в том, что весь контейнер можно использовать как единый модуль, поэтому преобразование, применённое к Sequential, распространяется на каждый из хранящихся в нём модулей (каждый из которых зарегистрирован как подмодуль Sequential).

В чём разница между Sequential и torch.nn.ModuleList? ModuleList — это именно то, что следует из названия: список для хранения Module s! С другой стороны, слои в Sequential соединены последовательно.

Пример:

# Using Sequential to create a small model. When `model` is run,
# input will first be passed to `Conv2d(1,20,5)`. The output of
# `Conv2d(1,20,5)` will be used as the input to the first
# `ReLU`; the output of the first `ReLU` will become the input
# for `Conv2d(20,64,5)`. Finally, the output of
# `Conv2d(20,64,5)` will be used as input to the second `ReLU`
model = nn.Sequential(
    nn.Conv2d(1, 20, 5), nn.ReLU(), nn.Conv2d(20, 64, 5), nn.ReLU()
)

# Using Sequential with OrderedDict. This is functionally the
# same as the above code
model = nn.Sequential(
    OrderedDict(
        [
            ("conv1", nn.Conv2d(1, 20, 5)),
            ("relu1", nn.ReLU()),
            ("conv2", nn.Conv2d(20, 64, 5)),
            ("relu2", nn.ReLU()),
        ]
    )
)
append(module) [исходный код]

Добавляет указанный модуль в конец.

Параметры:

module (nn.Module) – модуль для добавления

Тип возвращаемого значения:

Self

Пример:

>>> import torch.nn as nn
>>> n = nn.Sequential(nn.Linear(1, 2), nn.Linear(2, 3))
>>> n.append(nn.Linear(3, 4))
Sequential(
    (0): Linear(in_features=1, out_features=2, bias=True)
    (1): Linear(in_features=2, out_features=3, bias=True)
    (2): Linear(in_features=3, out_features=4, bias=True)
)
extend(sequential) [исходный код]

Расширяет текущий контейнер Sequential слоями из другого контейнера Sequential.

Параметры:

sequential (Sequential) – контейнер Sequential, слои которого будут добавлены в текущий контейнер.

Тип возвращаемого значения:

Self

Пример:

>>> import torch.nn as nn
>>> n = nn.Sequential(nn.Linear(1, 2), nn.Linear(2, 3))
>>> other = nn.Sequential(nn.Linear(3, 4), nn.Linear(4, 5))
>>> n.extend(other) # or `n + other`
Sequential(
    (0): Linear(in_features=1, out_features=2, bias=True)
    (1): Linear(in_features=2, out_features=3, bias=True)
    (2): Linear(in_features=3, out_features=4, bias=True)
    (3): Linear(in_features=4, out_features=5, bias=True)
)
forward(input) [исходный код]

Выполняет прямой проход.

insert(index, module) [исходный код]

Вставляет модуль в контейнер Sequential по указанному индексу.

Параметры:
  • index (int) – индекс, по которому нужно вставить модуль.
  • module (Module) – модуль для вставки.
Тип возвращаемого значения:

Self

Пример:

>>> import torch.nn as nn
>>> n = nn.Sequential(nn.Linear(1, 2), nn.Linear(2, 3))
>>> n.insert(0, nn.Linear(3, 4))
Sequential(
    (0): Linear(in_features=3, out_features=4, bias=True)
    (1): Linear(in_features=1, out_features=2, bias=True)
    (2): Linear(in_features=2, out_features=3, bias=True)
)
pop(key) [исходный код]

Извлекает key из self.

Тип возвращаемого значения:

Module

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.nn.Sequential.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API