Функция F.sigmoid
Функция F.sigmoid применяет сигмоидальную функцию активации
к каждому элементу входного тензора. Сигмоида преобразует значения
в диапазон от 0 до 1, что делает её полезной для задач
бинарной классификации и в качестве функции активации в скрытых слоях.
Функция принимает тензор и возвращает тензор той же формы,
где каждый элемент вычисляется по формуле:
1 / (1 + exp(-x)).
Синтаксис
torch.sigmoid(input)
Функция sigmoid доступна как в модуле torch,
так и в функциональном модуле torch.nn.functional.
Пример
Применим сигмоиду к одномерному тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
res = F.sigmoid(t)
print(res)
Результат выполнения кода:
tensor([0.1192, 0.2689, 0.5000, 0.7311, 0.8808])
Пример
Применим сигмоиду к двумерному тензору:
import torch
import torch.nn.functional as F
t = torch.tensor([
[-3.0, 0.0, 3.0],
[-1.0, 2.0, -2.0],
])
res = torch.sigmoid(t)
print(res)
Результат выполнения кода:
tensor([
[0.0474, 0.5000, 0.9526],
[0.2689, 0.8808, 0.1192],
])
Пример
Используем сигмоиду в качестве функции активации для слоя нейронной сети:
import torch
import torch.nn as nn
import torch.nn.functional as F
class MyModel(nn.Module):
def __init__(self):
super().__init__()
self.fc = nn.Linear(5, 3)
def forward(self, x):
x = self.fc(x)
x = F.sigmoid(x)
return x
model = MyModel()
t = torch.randn(2, 5)
res = model(t)
print(res)
Результат выполнения кода:
tensor([
[0.5584, 0.5755, 0.5581],
[0.4150, 0.4068, 0.4032],
], grad_fn=<SigmoidBackward0>)
Смотрите также
-
функцию
hardsigmoid,
которая является кусочно-линейной аппроксимацией сигмоиды -
функцию
tanh,
которая преобразует значения в диапазон от -1 до 1 -
функцию
softmax,
которая преобразует значения в вероятностное распределение -
функцию
relu,
которая оставляет положительные значения и обнуляет отрицательные