Функция PyTorch torch.nn.Sigmoid
Справочное руководство PyTorch torch.nn
torch.nn.SigmoidЭто сигмоидная функция активации в PyTorch.
Она отображает входные значения в диапазон от 0 до 1 и обычно используется для бинарной классификации или в качестве управляющего сигнала вентиля.
Определение функции
torch.nn.Sigmoid()
Математический принцип
Sigmoid(x) = 1 / (1 + e^(-x))
Примеры использования
Пример 1: Базовое использование
Пример
import torch
import torch.nn as nn
sigmoid = nn.Sigmoid()
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
output = sigmoid(x)
print("Input:", x.tolist())
print("Вывод:", output.tolist())
import torch.nn as nn
sigmoid = nn.Sigmoid()
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
output = sigmoid(x)
print("Input:", x.tolist())
print("Вывод:", output.tolist())
Пример 2: Выход бинарной классификации
Пример
import torch
import torch.nn as nn
model = nn.Linear(10, 1)
sigmoid = nn.Sigmoid()
logits = model(torch.randn(4, 10))
probabilities = sigmoid(logits)
print("Logits:", logits.squeeze().tolist())
print("Probability:", probabilities.squeeze().tolist())
print("Предсказание:", (probabilities > 0.5).squeeze().tolist())
import torch.nn as nn
model = nn.Linear(10, 1)
sigmoid = nn.Sigmoid()
logits = model(torch.randn(4, 10))
probabilities = sigmoid(logits)
print("Logits:", logits.squeeze().tolist())
print("Probability:", probabilities.squeeze().tolist())
print("Предсказание:", (probabilities > 0.5).squeeze().tolist())
Пример 3: Версия nn.functional
Пример
import torch
import torch.nn.functional as F
x = torch.randn(4, 10)
output = torch.sigmoid(x)
output2 = F.sigmoid(x)
print("Форма:", output.shape)
print("Оба метода дают одинаковый результат:", torch.allclose(output, output2))
import torch.nn.functional as F
x = torch.randn(4, 10)
output = torch.sigmoid(x)
output2 = F.sigmoid(x)
print("Форма:", output.shape)
print("Оба метода дают одинаковый результат:", torch.allclose(output, output2))
Сценарии использования
- Бинарная классификация: выходная вероятность
- Механизм гейтирования: управление потоком информации
- Вероятностный выход: сценарии, требующие диапазона 0-1
Примечание: При обучении глубоких сетей ReLU работает лучше; Sigmoid склонна вызывать исчезающие градиенты.
Другие расширения