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

Метод add_param_group

Метод add_param_group класса Optimizer позволяет добавлять новую группу параметров в уже созданный оптимизатор. Это полезно, когда модель изменяется динамически, например, добавляются новые слои или параметры во время обучения. Первым и единственным параметром метод принимает словарь с конфигурацией новой группы параметров.

Синтаксис

optimizer.add_param_group(param_group)

Пример

Давайте создадим оптимизатор для одной группы параметров, а затем добавим вторую группу:

import torch model = torch.nn.Linear(5, 3) optimizer = torch.optim.SGD(model.parameters(), lr=0.01) new_params = torch.nn.Parameter(torch.randn(2, 3)) optimizer.add_param_group({'params': new_params, 'lr': 0.001}) print(len(optimizer.param_groups))

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

2

Пример

Добавим новую группу параметров с индивидуальной скоростью обучения и моментом:

import torch model = torch.nn.Sequential( torch.nn.Linear(10, 20), torch.nn.ReLU(), torch.nn.Linear(20, 5) ) optimizer = torch.optim.Adam(model.parameters(), lr=0.001) new_layer = torch.nn.Linear(5, 2) optimizer.add_param_group({ 'params': new_layer.parameters(), 'lr': 0.01, 'betas': (0.9, 0.999) }) print(optimizer.param_groups[0]['lr']) print(optimizer.param_groups[1]['lr'])

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

0.001 0.01

Пример

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

import torch torch.manual_seed(0) model = torch.nn.Linear(5, 3) optimizer = torch.optim.SGD(model.parameters(), lr=0.01) for epoch in range(2): x = torch.randn(1, 5) y = model(x) loss = y.sum() optimizer.zero_grad() loss.backward() optimizer.step() if epoch == 1: new_param = torch.nn.Parameter(torch.randn(2, 3)) optimizer.add_param_group({'params': new_param, 'lr': 0.005}) print(len(optimizer.param_groups))

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

2

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

  • класс Optimizer,
    базовый класс для всех оптимизаторов
  • метод step,
    выполняет обновление параметров модели
  • метод zero_grad,
    обнуляет градиенты параметров
  • атрибут param_groups,
    возвращает список групп параметров оптимизатора
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить