Fonction torch.nn.LeakyReLU de PyTorch

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch


torch.nn.LeakyReLUIl s'agit de la fonction d'activation Leaky ReLU dans PyTorch.

Elle permet aux valeurs négatives d'avoir un petit gradient positif, évitant le problème du « neurone mort ».

Définition de fonction

torch.nn.LeakyReLU(negative_slope=0.01, inplace=False)

Parameters

  • negative_slope: pente pour les valeurs négatives, valeur par défaut 0.01

Formule

f(x) = x, x > 0
f(x) = negative_slope * x, x <= 0

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

import torch
import torch.nn as nn

lrelu = nn.LeakyReLU(negative_slope=0.1)

x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
sortie = lrelu(x)

print("Input:", x.tolist())
print("Sortie :", output.tolist())
print("Les valeurs négatives ont un petit gradient positif")

Exemple 2 : Utilisation dans un GAN

Exemple

import torch
import torch.nn as nn

# Les générateurs GAN utilisent couramment LeakyReLU
generator = nn.Sequential(
    nn.Linear(100, 256),
    nn.LeakyReLU(0.2),
    nn.Linear(256, 512),
    nn.LeakyReLU(0.2),
    nn.Linear(512, 784),
    nn.Tanh()
)

z = torch.randn(4, 100)
output = generator(z)

print("Entrée :", z.shape, "-> Sortie :", output.shape)

Exemple 3 : Éviter les neurones morts

Exemple

import torch
import torch.nn as nn

# Comparer ReLU et LeakyReLU
relu = nn.ReLU()
lrelu = nn.LeakyReLU()

# entrée avec valeur négative
x = torch.randn(10, 100) - 5

# ReLU renvoie uniquement des 0
print("Ratio non nul après ReLU :", (relu(x) != 0).float().mean().item())

# LeakyReLU a un gradient
print("Ratio non nul après LeakyReLU :", (lrelu(x) != 0).float().mean().item())

Cas d'utilisation

  • GAN: générateur, discriminateur
  • Prévention des neurones morts
  • Réseaux clairsemés

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch

Autres extensions