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. По умолчанию: .
- Возвращаемый тип
- Форма:
-
- Вход: Форма , или в случае K-мерной потери.
- Целевой: Если содержит индексы классов, форма , или в случае K-мерной потери, где каждое значение должно быть в диапазоне . Если содержит вероятности классов, такая же форма, как у входных данных, и каждое значение должно быть в диапазоне .
где:
Примеры:
>>> # 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спецификации, руководства, описания, API