PyTorch torch.nn.LeakyReLU-Funktion

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


torch.nn.LeakyReLUEs ist die Leaky-ReLU-Aktivierungsfunktion in PyTorch.

Sie ermöglicht negativen Werten einen kleinen positiven Gradienten, wodurch das Problem der "toten Neuronen" vermieden wird.

Funktionsdefinition

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

Parameters

  • negative_slope: Steigung für negative Werte, Standardwert 0.01

Formel

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

Anwendungsbeispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

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])
output = lrelu(x)

print("Eingabe:", x.tolist())
print("Ausgabe:", output.tolist())
print("Negative Werte haben einen kleinen positiven Gradienten")

Beispiel 2: Verwendung in GAN

Beispiel

import torch
import torch.nn as nn

# GAN-Generatoren verwenden üblicherweise 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("Eingabe:", z.shape, "-> Ausgabe:", output.shape)

Beispiel 3: Tote Neuronen verhindern

Beispiel

import torch
import torch.nn as nn

# ReLU und LeakyReLU vergleichen
relu = nn.ReLU()
lrelu = nn.LeakyReLU()

# Eingabe eines negativen Werts
x = torch.randn(10, 100) - 5

# ReLU gibt überall 0 aus
print("Anteil ungleich null nach ReLU:", (relu(x) != 0).float().mean().item())

# LeakyReLU hat einen Gradienten
print("Anteil ungleich null nach LeakyReLU:", (lrelu(x) != 0).float().mean().item())

Anwendungsfälle

  • GAN: Generator, Diskriminator
  • Vermeidung toter Neuronen
  • Sparse Netzwerke

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

Andere Erweiterungen