Softmax в PyTorch — это функция, которая применяется к n-мерному входному тензору и изменяет его масштаб, а элементы n-мерного выходного тензора лежат в диапазоне [0,1].

PyTorch softmax применяется к n-мерному входному тензору и масштабирует его так, чтобы выходной тензор n-мерного тензора находился в диапазоне [0,1].

Синтаксис:

torch.nn.Softmax(dim=None)

dim: dim используется в качестве измерения вместе с softmax, и каждый фрагмент вдоль dim будет суммироваться до единицы.

Softmax возвращает тензор в виде входных данных того же размера и формы со значениями в диапазоне [0,1].

Итак, мы поняли, что такое softmax в PyTorch, используя функцию softmax().

Содержание

Пример

Функция softmax() применяется к n-мерному входному тензору и изменяет его масштаб. Softmax() можно выполнить с помощью функции nn.softmax().

В следующем коде мы импортируем все необходимые библиотеки, такие как import torch и import torch.nn как nn.

  • a = nn.Softmax(dim=1): Здесь мы используем функцию softmax().
  • input = torch.randn(4, 5): Здесь мы объявляем входную переменную с помощью функции torch.randn().
  • print(output) используется для печати вывода с помощью функции print().
# Importing Libraries
import torch
import torch.nn as nn
# Using Softmax() function
a = nn.Softmax(dim=1)
# Describing a variable
input = torch.randn(4, 5)
# Declaring the output
output = a(input)
# Print the output
print(output)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение softmax PyTorch печатается на экране.

Пример softmax PyTorch

Вот как мы можем реализовать функцию softmax PyTorch с помощью примера.

Как мы можем использовать функцию активации softmax PyTorch

Прежде чем двигаться дальше, мы должны иметь некоторые знания о функции активации.

Функция активации — это функция, которая выполняет вычисления и дает выходные данные, которые действуют как входные данные для следующего нейрона.

В следующем коде сначала мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn.

  • b = nn.Softmax(dim=0) используется как функция softmax с dim=0, поскольку размерность начинается с 0.
  • input = torch.Tensor([3,-4,5,-7]) используется для объявления тензора.
  • вывод = b(вход) используется для применения функции к тензору.
  • print(output) используется для печати вывода с помощью функции print().
# Importing libraries
import torch
import torch.nn as nn
 
# Using the Softmax function with dim = 0 as dimension starts from 0
b = nn.Softmax(dim=0) 
 
# Declaring the tensor
input = torch.Tensor([3,-4,5,-7])
 
# Applying function to the tensor
output = b(input)
# Print the output
print(output)

В приведенном ниже выводе мы видим, что значение функции активации softmax PyTorch печатается на экране.

Функция активации PyTorch softmax

Функционал softmax

Функционал softmax PyTorch применяется ко всем частям вместе с затемнением и изменением их масштаба так, чтобы элементы лежали в диапазоне [0,1].

Синтаксис:

torch.nn.functional.softmax(input, dim=None, dtype=None)

Ниже приведены параметры функционала softmax PyTorch:

  • input: входной параметр определяется как входной тензор.
  • dim: Параметр dim определяется как размер вместе с softmax, который будет вычисляться.
  • dtype: определяется как желаемый тип данных возвращаемого тензора, который полезен для предотвращения переполнения типов данных, а значение dtype по умолчанию — None.

Вот как мы можем понять функционал softmax PyTorch, используя torch.nn.functional.Softmax().

Измерение softmax

Прежде чем двигаться дальше, мы должны иметь некоторые знания об этом измерении.

Размер определяется как измеримое увеличение определенного вида, например длины, высоты, ширины и глубины.

Размерность — это параметр, который определяется как dim вместе с softmax, который будет вычисляться.

В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import nn from torch.

  • m = nn.Softmax(dim=1): Здесь мы используем функцию softmax().
  • input = torch.tensor([[5.0, 6.0, 3.0]],dtype=torch.float) используется для объявления входной переменной с помощью функции torch.tensor().
  • вывод = m(вход) используется для объявления выходной переменной.
  • print(output) используется для печати вывода с помощью функции print().
# Importing Libarray
import torch
from torch import nn
# Using the Softmax() function 
m = nn.Softmax(dim=1)
# Declaring the input variable
input = torch.tensor([[5.0, 6.0, 3.0]],dtype=torch.float)
# Declaring the output variable
output = m(input)
# Print output
print(output)

В приведенном ниже выводе вы можете видеть, что значения размеров softmax Pytorch печатаются на экране.

PyTorch softmax размерность

Что такое softmax2d

PyTorch Softmax2d — это класс, который применяет SoftMax над функциями к каждому концептуальному местоположению.

Синтаксис:

torch.nn.softmax2d()

Он возвращает тензор того же размера и формы, что и входные данные, со значениями в диапазоне [0,1].

В следующем коде мы импортируем библиотеку факела как импорт факела.

  • m = nn.Softmax2d(): Здесь мы используем softmax2d().
  • input = torch.randn(4, 5, 14, 15): Здесь мы объявляем softmax для второго измерения.
  • выход = m(вход): Здесь мы описываем выходную переменную.
  • print(output) используется для печати вывода с помощью функции print().
# Import library
import torch
# Using softmax2d
m = nn.Softmax2d()
# softmax over the 2nd dimension
input = torch.randn(4, 5, 14, 15)
#Declaring the output variable
output = m(input)
#Print output
print(output)

В приведенном ниже выводе вы можете видеть, что значения PyTorch Softmax2d печатаются на экране.

функция softmax2d()

Класс torch.nn.CrossEntropyLoss()

Класс torch.nn.CrossEntropyLoss() вычисляет перекрестную энтропийную потерю между входными данными и целью, а функция softmax() используется для нацеливания с вероятностями классов.

В следующем коде сначала мы импортируем библиотеку факела, например import torch.

  • loss = nn.CrossEntropyLoss(): Здесь мы используем функцию CrossEntropyLoss().
  • input = torch.randn(5, 7, require_grad=True) используется для объявления входной переменной.
  • target = torch.randn(5, 7).softmax(dim=1): Здесь мы объявляем целевую переменную.
  • выход = потеря(вход, цель): здесь мы описываем выходную переменную.
  • print(output) используется для печати вывода с помощью функции print().
# Import library
import torch
loss = nn.CrossEntropyLoss()
# Declaring the input variable
input = torch.randn(5, 7, requires_grad=True)
#Decaring the target variable
target = torch.randn(5, 7).softmax(dim=1)
# Describing the output variable
output = loss(input, target)
output.backward()
# Print output
print(output)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения перекрестной энтропии PyTorch softmax печатаются на экране.

Класс torch.nn.CrossEntropyLoss()

Что такое Logsoftmax

PyTorch Logsoftmax применяет функцию logsoftmax() к n-мерному входному тензору.

В следующем коде мы импортируем все необходимые библиотеки, такие как import torch, import torch.nn как nn.

  • input = torch.rand(4,5): Здесь мы объявляем входную переменную с помощью функции torch.rand().
  • a = nn.Softmax(dim=1): Здесь мы используем функцию softmax().
  • a = nn.LogSoftmax(dim=1) Здесь мы объявляем функцию Logsoftmax().
# Importing libraries
import torch
import torch.nn as nn

# Declaring the variable
input = torch.rand(4,5)

# Using the softmax
a = nn.Softmax(dim=1)
soft = a(input)
print(soft)

soft = torch.softmax(input, dim=1) 
print(soft)

# Declaring the Logsoftmax() function
input = torch.randn(4,5,6)
a = nn.LogSoftmax(dim=1)
output = m(input)
# print the output
print(output)

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что значения PyTorch Logsoftmax печатаются на экране.

Значения Logsoftmax

Добавить комментарий