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

Цикл подгонки в PyTorch

Один сдвиг весов редко хватает: с тем же набором примеров цикл повторяют много раз. На каждом повторе сначала вызывают метод zero_grad у объекта обновления, затем прогон модели, подсчёт ошибки, обратный проход и метод step.

Зафиксируем зерно генератора перед созданием слоя, зададим столбец входов, столбец эталона и десять повторений цикла. Выведем ошибку на последнем шаге:

import torch import torch.nn as nn torch.manual_seed(42) model = nn.Linear(1, 1) criterion = nn.MSELoss() optimizer = torch.optim.SGD( model.parameters(), lr=0.01 ) x = torch.tensor([[1.0], [2.0], [3.0]]) y = torch.tensor([[2.0], [4.0], [6.0]]) for _ in range(10): optimizer.zero_grad() pred = model(x) loss = criterion(pred, y) loss.backward() optimizer.step() print(loss) # выведет tensor(0.6060, grad_fn=<MseLossBackward0>)

Зафиксируйте зерно 0 перед линейным слоем 1 на 1. Для столбцов [[2.0], [4.0]] и [[4.0], [8.0]] выполните пять повторений полного цикла подгонки со скоростью 0.05. Выведите ошибку после последнего повторения.

Перед созданием преобразования 1 на 1 задайте зерно 7. По таблице [[1.0], [2.0], [3.0]] и эталону [[3.0], [5.0], [7.0]] сделайте восемь одинаковых циклов обновления со скоростью 0.02. Выведите итоговое расхождение.

Установите зерно 1 до сборки слоя 1 на 1. Повторите цикл подгонки три раза для пары столбцов [[0.5], [1.5]] и [[1.0], [3.0]] при скорости 0.1. Выведите число ошибки на финальном повторе.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить