Сведение по батчу в PyTorch
Пакет из нескольких примеров
даёт много пар «предсказание -
эталон». Класс MSELoss
по умолчанию возвращает
среднее по пакету:
квадраты отклонений складывают
и делят на их число.
Создадим две таблицы одной формы, считаем ошибку с настройками по умолчанию и выведем результат:
import torch
import torch.nn as nn
pred = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
target = torch.tensor([[1.0, 1.0], [3.0, 5.0]])
loss = nn.MSELoss()(pred, target)
print(loss) # выведет tensor(0.5000)
Иногда нужна сумма по пакету без деления на число элементов. Тот же критерий можно собрать с другим режимом сведения и сравнить ответ:
import torch
import torch.nn as nn
pred = torch.tensor([[1.0, 2.0], [3.0, 4.0]])
target = torch.tensor([[1.0, 1.0], [3.0, 5.0]])
mean_loss = nn.MSELoss()(pred, target)
sum_loss = nn.MSELoss(reduction='sum')(pred, target)
print(mean_loss) # выведет tensor(0.5000)
print(sum_loss) # выведет tensor(2.)
Задайте таблицу прогнозов
[[0.0, 1.0], [2.0, 3.0]]
и таблицу замеров
[[0.0, 2.0], [2.0, 2.0]].
Выведите одно число средней
ошибки по всем ячейкам пакета.
Задайте таблицу прогнозов
[[0.0, 1.0], [2.0, 3.0]]
и таблицу замеров
[[0.0, 2.0], [2.0, 2.0]].
Выведите одно число суммарной
ошибки по всем ячейкам пакета.
Задайте ряд прогнозов
[1.0, 2.0, 3.0] и ряд
замеров [1.0, 3.0, 3.0].
Выведите одно число средней
ошибки по пакету.