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

Метод pop

Метод pop класса Sequential удаляет и возвращает последний слой, добавленный в модель. Метод не принимает никаких аргументов. При вызове он удаляет последний модуль из контейнера и возвращает его, позволяя использовать удалённый слой для дальнейших операций.

Синтаксис

layer = model.pop()

Пример

Давайте создадим последовательную модель из трёх слоёв и удалим последний слой:

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 model = nn.Sequential( nn.Linear(10, 20), nn.ReLU(), nn.Linear(20, 5) ) last_layer = model.pop() print(f"Удалённый слой: {last_layer}") print(f"\nМодель после удаления:\n{model}")

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

Удалённый слой: Linear(in_features=20, out_features=5, bias=True) Модель после удаления: Sequential( (0): Linear(in_features=10, out_features=20, bias=True) (1): ReLU() )

Пример

Используем метод pop для удаления слоя и применения его в другой модели:

import torch import torch.nn as nn model1 = nn.Sequential( nn.Linear(10, 30), nn.ReLU(), nn.Linear(30, 15) ) # Удаляем последний слой из первой модели last_layer = model1.pop() # Создаём вторую модель и добавляем в неё удалённый слой model2 = nn.Sequential( nn.Linear(5, 10), last_layer ) print(f"Первая модель:\n{model1}") print(f"\nВторая модель:\n{model2}")

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

Первая модель: Sequential( (0): Linear(in_features=10, out_features=30, bias=True) (1): ReLU() ) Вторая модель: Sequential( (0): Linear(in_features=5, out_features=10, bias=True) (1): Linear(in_features=30, out_features=15, bias=True) )

Пример

Рассмотрим ситуацию, когда модель пуста и вызывается метод pop:

import torch import torch.nn as nn empty_model = nn.Sequential() try: layer = empty_model.pop() except IndexError as e: print(f"Ошибка: {e}")

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

"Ошибка: pop from empty Sequential"

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

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