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

Проверка на отложенных в PyTorch

На отложенных примерах веса не подстраивают: нужно лишь узнать ошибку на данных, которых не было в подгонке. Модуль переводят методом eval, а прогон выполняют внутри блока no_grad, чтобы не строить граф для градиента и не менять параметры.

Сначала несколько раз обновим веса по обучающей таблице, затем подадим другую пару чисел и выведем ошибку без шага объекта обновления:

import torch import torch.nn as nn torch.manual_seed(7) model = nn.Linear(2, 1) criterion = nn.MSELoss() optimizer = torch.optim.SGD( model.parameters(), lr=0.01 ) train_x = torch.tensor( [[1.0, 0.0], [0.0, 1.0]] ) train_y = torch.tensor([[1.0], [2.0]]) for _ in range(3): for p in model.parameters(): p.grad = None pred = model(train_x) loss = criterion(pred, train_y) loss.backward() optimizer.step() valid_x = torch.tensor([[1.0, 1.0]]) valid_y = torch.tensor([[1.5]]) model.eval() with torch.no_grad(): pred = model(valid_x) valid_loss = criterion(pred, valid_y) print(valid_loss) # выведет tensor(2.1935)

Сделайте три шага подгонки по таблице [[1.0, 2.0]] с эталоном [[2.0]] для линейного слоя 2 на 1. Затем переведите модуль в состояние для чистого прогона, подайте строку [[0.0, 1.0]] с эталоном [[1.0]] внутри блока без записи градиента и выведите расхождение без обновления весов.

Обучите преобразование 1 на 1 на двух парах (1.0, 2.0) и (2.0, 4.0), затем оцените качество на отложенной паре (3.0, 5.0): включите режим готового решения, считайте ошибку в блоке без графа и выведите её. Параметры на проверке не сдвигайте.

После двух шагов подгонки по строкам [[1.0, 0.0]] и [[0.0, 1.0]] с эталонами [[0.5]] и [[1.5]] переключите модуль для оценки на новых данных. На строке [[1.0, 1.0]] и эталоне [[1.0]] найдите расхождение только для просмотра и выведите одно число.

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