Метод insert
Метод insert класса Sequential вставляет новый слой
в указанную позицию контейнера. Первым параметром метод
принимает целочисленный индекс, вторым - добавляемый слой.
Метод изменяет исходный объект и не возвращает нового.
Синтаксис
sequential.insert(index, layer)
Пример
Создадим последовательную модель и вставим слой в начало:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 20),
nn.ReLU()
)
model.insert(0, nn.Dropout(0.5))
print(model)
Результат выполнения кода:
Sequential(
(0): Dropout(p=0.5, inplace=False)
(1): Linear(in_features=10, out_features=20, bias=True)
(2): ReLU()
)
Пример
Вставим слой в середину последовательности:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 20),
nn.ReLU(),
nn.Linear(20, 10)
)
model.insert(2, nn.BatchNorm1d(10))
print(model)
Результат выполнения кода:
Sequential(
(0): Linear(in_features=10, out_features=20, bias=True)
(1): ReLU()
(2): BatchNorm1d(10, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(3): Linear(in_features=20, out_features=10, bias=True)
)
Пример
Вставим слой в конец с помощью индекса равного длине:
import torch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(10, 20),
nn.ReLU()
)
model.insert(len(model), nn.Softmax(dim=1))
print(model)
Результат выполнения кода:
Sequential(
(0): Linear(in_features=10, out_features=20, bias=True)
(1): ReLU()
(2): Softmax(dim=1)
)
Смотрите также
-
класс
Sequential,
который представляет контейнер для последовательных слоёв -
метод
append,
который добавляет слой в конец последовательности -
метод
pop,
который удаляет слой по индексу из последовательности -
метод
forward,
который выполняет прямой проход по последовательности