Fonction PyTorch torch.nn.Sigmoid
Manuel de référence torch.nn de PyTorch
torch.nn.SigmoidIl s'agit de la fonction d'activation sigmoïde dans PyTorch.
Elle transforme les valeurs d'entrée en valeurs comprises entre 0 et 1, et est couramment utilisée pour la classification binaire ou comme signal de contrôle de porte.
Définition de fonction
torch.nn.Sigmoid()
Principe mathématique
Sigmoid(x) = 1 / (1 + e^(-x))
Exemples d'utilisation
Exemple 1 : Utilisation de base
Exemple
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("Sortie :", 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("Sortie :", output.tolist())
Exemple 2 : Sortie de classification binaire
Exemple
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("Probabilité :", probabilities.squeeze().tolist())
print("Prédiction :", (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("Probabilité :", probabilities.squeeze().tolist())
print("Prédiction :", (probabilities > 0.5).squeeze().tolist())
Exemple 3 : version nn.functional
Exemple
import torch
import torch.nn.functional as F
x = torch.randn(4, 10)
output = torch.sigmoid(x)
output2 = F.sigmoid(x)
print("Forme :", output.shape)
print("Les deux méthodes produisent le même résultat :", torch.allclose(output, output2))
import torch.nn.functional as F
x = torch.randn(4, 10)
output = torch.sigmoid(x)
output2 = F.sigmoid(x)
print("Forme :", output.shape)
print("Les deux méthodes produisent le même résultat :", torch.allclose(output, output2))
Scénarios d'utilisation
- Classification binaire: probabilité de sortie
- Mécanisme de porte: contrôle du flux d'informations
- Sortie probabiliste: scénarios nécessitant une plage 0-1
Remarque : lors de l'entraînement de réseaux profonds, ReLU fonctionne mieux ; Sigmoid a tendance à provoquer une disparition des gradients.
Autres extensions