Перекрестная энтропийная потеря — это часто используемая функция потерь в машинном обучении, в том числе в PyTorch. Это особенно полезно для таких задач, как классификация, целью которых является присвоение входных данных одному из нескольких предопределенных классов.
В PyTorch перекрестная энтропийная потеря реализована как класс nn.CrossEntropyLoss. Он объединяет функцию softmax и потерю отрицательного логарифмического правдоподобия в одно эффективное вычисление. Функция softmax преобразует выходные данные модели в распределение вероятностей по классам, а отрицательная логарифмическая потеря правдоподобия измеряет разницу между предсказанными вероятностями и истинными метками.
Вот пример использования потери перекрестной энтропии в PyTorch:
import torch
import torch.nn as nn
# Assuming you have a model that produces logits and a target tensor
logits = torch.tensor([[0.5, 0.2, 0.3], [0.1, 0.8, 0.1]])
targets = torch.tensor([0, 2]) # True labels
criterion = nn.CrossEntropyLoss()
loss = criterion(logits, targets)
print(loss)
В этом примере logitsпредставляет выходные данные вашей модели, которые представляют собой ненормализованные оценки для каждого класса. targetsпредставляют собой настоящие метки для соответствующих входных данных. Создается объект CrossEntropyLoss, а затем вычисляется потеря путем передачи логитов и целевых значений в функцию потерь. Полученное значение потерь выводится на печать.