Función PyTorch torch.nn.ELU

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


torch.nn.ELUEs la función de activación de unidad lineal exponencial en PyTorch.

Utiliza la función exponencial para valores negativos, permitiendo que los valores negativos tengan una salida distinta de cero, con gradientes más suaves.

Definición de la función

torch.nn.ELU(alpha=1.0, inplace=False)

Fórmula

ELU(x) = x, x > 0
ELU(x) = alpha * (e^x - 1), x <= 0

Ejemplo de uso

Ejemplo 1: Uso básico

Ejemplo

import torch
import torch.nn as nn

elu = nn.ELU(alpha=1.0)

x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
output = elu(x)

print("Entrada:", x.tolist())
print("Salida:", output.tolist())

Ejemplo 2: Comparación con ReLU

Ejemplo

import torch
import torch.nn as nn
import numpy as np

x = np.array([-3.0, -2.0, -1.0, 0.0, 1.0, 2.0])
x_t = torch.tensor(x)

print("x        ELU       ReLU")
for i in range(0, 6, 1):
    print(f"{x[i]:6.1f} {nn.ELU()(x_t[i:i+1]).item():9.4f} {nn.ReLU()(x_t[i:i+1]).item():9.4f}")

Ejemplo 3: Parámetro alpha

Ejemplo

import torch
import torch.nn as nn

# Diferentes valores de alpha
x = torch.tensor([-1.0])

for alpha in [0.5, 1.0, 1.5, 2.0]:
    out = nn.ELU(alpha=alpha)(x)
    print(f"alpha={alpha}: {out.item():.4f}")

Casos de uso

  • Autoencoder
  • Necesita salida de valores negativos
  • Gradientes suaves

Consejo: ELU es más lento de calcular que ReLU, pero converge más rápido.


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

Otras extensiones