РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
341 of 769 menu

Класс LogSoftmax

Класс LogSoftmax применяет логарифмическую функцию Softmax к входным данным. Это эквивалентно применению функции Softmax с последующим взятием логарифма, но реализовано более численно стабильно. Класс принимает параметр dim, который указывает ось, по которой будет выполняться вычисление.

Синтаксис

torch.nn.LogSoftmax(dim)

Параметры

Метод принимает один обязательный параметр:

  • dim (int) - измерение тензора, по которому применяется логарифмическая функция Softmax

Пример

Давайте создадим объект LogSoftmax, применяющий преобразование к последнему измерению тензора:

import torch log_softmax = torch.nn.LogSoftmax(dim=1) t = torch.tensor([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) res = log_softmax(t) print(res)

Результат выполнения кода:

tensor([ [-2.4076, -1.4076, -0.4076], [-2.4076, -1.4076, -0.4076], ])

Пример

Давайте применим LogSoftmax к одномерному тензору по нулевой оси:

import torch log_softmax = torch.nn.LogSoftmax(dim=0) t = torch.tensor([1.0, 2.0, 3.0]) res = log_softmax(t) print(res)

Результат выполнения кода:

tensor([-2.4076, -1.4076, -0.4076])

Пример

Давайте используем LogSoftmax в составе нейросети для классификации:

import torch class SimpleNet(torch.nn.Module): def __init__(self): super().__init__() self.fc = torch.nn.Linear(10, 5) self.log_softmax = torch.nn.LogSoftmax(dim=1) def forward(self, x): x = self.fc(x) return self.log_softmax(x) model = SimpleNet() t = torch.randn(3, 10) res = model(t) print(res.shape)

Результат выполнения кода:

torch.Size([3, 5])

Пример

Давайте сравним LogSoftmax с комбинацией Softmax и log:

import torch t = torch.tensor([[2.0, 3.0, 1.0], [1.0, 4.0, 2.0]]) log_softmax = torch.nn.LogSoftmax(dim=1) res1 = log_softmax(t) softmax = torch.nn.Softmax(dim=1) res2 = torch.log(softmax(t)) print(torch.allclose(res1, res2))

Результат выполнения кода:

True

Смотрите также

  • класс Softmax,
    который применяет функцию Softmax к входным данным
  • класс Softmin,
    который применяет функцию Softmin к входным данным
  • класс Sigmoid,
    который применяет сигмоидальную функцию активации
  • класс Tanh,
    который применяет гиперболический тангенс к данным
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить