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 PyTorch
- Функционал softmax
- Измерение softmax
- Что такое softmax2d
- Класс torch.nn.CrossEntropyLoss()
- Что такое Logsoftmax
Пример
Функция 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
Прежде чем двигаться дальше, мы должны иметь некоторые знания о функции активации.
Функция активации — это функция, которая выполняет вычисления и дает выходные данные, которые действуют как входные данные для следующего нейрона.
В следующем коде сначала мы импортируем все необходимые библиотеки, такие как 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 печатается на экране.
Функционал 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 печатаются на экране.
Что такое 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 печатаются на экране.
Класс 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 печатаются на экране.
Что такое 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 печатаются на экране.