В PyTorch функции потерь могут быть реализованы путем создания подкласса класса
nn.Module и переопределения метода forward. Метод forward принимает на вход прогнозируемый выход и фактический выход и возвращает значение потерь.Приведем пример кода:
import torch
import torch.nn as nn
class CustomLoss(nn.Module):
def __init__(self):
super(MyLoss, self).__init__()
def forward(self, output, target):
loss = ... # compute the loss
return lossТеперь, чтобы использовать функцию потерь, необходимо инициализировать ее и передать в качестве аргумента параметру
criterion оптимизатора в цикле обучения.
model = ...
optimizer = ...
criterion = CustomLoss()
# цикл обучения
for epoch in range(num_epochs):
optimizer.zero_grad()
outputs = model(data)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
... #pytorch #junior
@machinelearning_interview