现在位置: 首页 > PyTorch 教程 > 正文

PyTorch torch.nn.Sigmoid 函数

PyTorch torch.nn 参考手册 PyTorch torch.nn 参考手册


torch.nn.Sigmoid 是 PyTorch 中的 S 型激活函数。

它将输入值映射到 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("输入:", 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("概率:", 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))

使用场景

  • 二分类: 输出概率
  • 门控机制: 控制信息流
  • 概率输出: 需要 0-1 范围的场景

注意:训练深度网络时,ReLU 效果更好,Sigmoid 容易导致梯度消失。


PyTorch torch.nn 参考手册 PyTorch torch.nn 参考手册