Función PyTorch torch.nn.LeakyReLU

PyTorch torch.nn 参考手册Manual de referencia de PyTorch torch.nn


torch.nn.LeakyReLUEs la función de activación ReLU con fuga en PyTorch.

Permite que los valores negativos tengan una pequeña pendiente positiva, evitando el problema de las "neuronas muertas".

Definición de la función

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

Parámetros

  • negative_slopenegative_slope: la pendiente de los valores negativos, valor predeterminado 0.01

Fórmula

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

Ejemplo de uso

Ejemplo 1: Uso básico

Ejemplo

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("Entrada:", x.tolist())
print("Salida:", output.tolist())
print("Los valores negativos tienen una pequeña pendiente positiva")

Ejemplo 2: Uso en GAN

Ejemplo

import torch
import torch.nn as nn

# El generador de GAN usa comúnmente 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("Entrada:", z.shape, "-> Salida:", output.shape)

Ejemplo 3: Prevención de neuronas muertas

Ejemplo

import torch
import torch.nn as nn

# Comparar ReLU y LeakyReLU
relu = nn.ReLU()
lrelu = nn.LeakyReLU()

# Entrada de valores negativos
x = torch.randn(10, 100) - 5

# ReLU genera todo 0
print("Proporción de no ceros después de ReLU:", (relu(x) != 0).float().mean().item())

# LeakyReLU tiene pendiente
print("Proporción de no ceros después de LeakyReLU:", (lrelu(x) != 0).float().mean().item())

Escenarios de uso

  • GANGenerador, discriminador
  • Prevención de neuronas muertas
  • Redes dispersas

PyTorch torch.nn 参考手册Manual de referencia de PyTorch torch.nn

Otras extensiones