Spec-Zone.ru › PyTorch 2

torch.nn.functional.cross_entropy

torch.nn.functional.cross_entropy(input, target, weight=None, size_average=None, ignore_index=-100, reduce=None, reduction='mean', label_smoothing=0.0) [source]

Этот критерий вычисляет потерю кросс-энтропии между логами входных данных и целевым значением.

См. CrossEntropyLoss для подробностей.

Параметры
  • input (Тензор) – Предсказанные ненормализованные логи; см. раздел «Форма» ниже для поддерживаемых форм.
  • target (Тензор) – Индексы или вероятности классов целевых значений; см. раздел «Форма» ниже для поддерживаемых форм.
  • weight (Тензор, необязательно) – вес, задающий ручное масштабирование для каждого класса. Если задан, должен быть тензором размера C
  • size_average (bool, необязательно) – Устаревший параметр (см. reduction). По умолчанию потери усредняются по каждому элементу потерь в батче. Обратите внимание, что для некоторых потерь может быть несколько элементов на образец. Если поле size_average установлено в False, потери вместо этого суммируются для каждого мини-батча. Игнорируется, когда reduce равен False. По умолчанию: True
  • ignore_index (int, необязательно) – Указывает целевое значение, которое игнорируется и не вносит вклад в градиент входных данных. Когда size_average равен True, потери усредняются по неигнорируемым целевым значениям. Обратите внимание, что ignore_index применимо только тогда, когда целевое значение содержит индексы классов. По умолчанию: -100
  • reduce (bool, необязательно) – Устаревший параметр (см. reduction). По умолчанию потери усредняются или суммируются по наблюдениям для каждого мини-батча в зависимости от size_average. Когда reduce равен False, возвращает потерю на элемент батча и игнорирует size_average. По умолчанию: True
  • reduction (строка, необязательно) – Указывает редукцию, которую нужно применить к выводу: 'none' | 'mean' | 'sum'. 'none': не будет применена редукция, 'mean': сумма вывода будет поделена на число элементов в выводе, 'sum': вывод будет суммирован. Примечание: size_average и reduce находятся в процессе устаревания, и пока что указание любого из этих двух аргументов переопределит reduction. По умолчанию: 'mean'
  • label_smoothing (число с плавающей точкой, необязательно) – Число с плавающей точкой в диапазоне [0.0, 1.0]. Указывает степень сглаживания при вычислении потери, где 0.0 означает отсутствие сглаживания. Целевые значения становятся смесью исходных целевых значений и равномерного распределения, как описано в Rethinking the Inception Architecture for Computer Vision. По умолчанию: 0.00.0.
Возвращаемый тип

Тензор

Форма:
  • Вход: Форма (C)(C), (N,C)(N, C) или (N,C,d1,d2,...,dK)(N, C, d_1, d_2, ..., d_K) в случае K-мерной потери.
  • Целевой: Если содержит индексы классов, форма ()(), (N)(N) или (N,d1,d2,...,dK)(N, d_1, d_2, ..., d_K) в случае K-мерной потери, где каждое значение должно быть в диапазоне [0,C)[0, C). Если содержит вероятности классов, такая же форма, как у входных данных, и каждое значение должно быть в диапазоне [0,1][0, 1].

где:

C=число классовN=размер батча\begin{aligned} C ={} & \text{number of classes} \\ N ={} & \text{batch size} \\ \end{aligned}

Примеры:

>>> # Example of target with class indices
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.randint(5, (3,), dtype=torch.int64)
>>> loss = F.cross_entropy(input, target)
>>> loss.backward()
>>>
>>> # Example of target with class probabilities
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.randn(3, 5).softmax(dim=1)
>>> loss = F.cross_entropy(input, target)
>>> loss.backward()

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.nn.functional.cross_entropy.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API