PyTorch torch.nn.ELU Funktion

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


torch.nn.ELUEs ist die Aktivierungsfunktion Exponential Linear Unit in PyTorch.

Es verwendet eine Exponentialfunktion für negative Werte, wodurch Ausgaben ungleich null für negative Werte und glattere Gradienten möglich sind.

Funktionsdefinition

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

Formel

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

Anwendungsbeispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

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(Eingabe:, x.tolist())
print(Ausgabe:, output.tolist())

Beispiel 2: Vergleich mit ReLU

Beispiel

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}")

Beispiel 3: Alpha-Parameter

Beispiel

import torch
import torch.nn as nn

# Verschiedene Alpha-Werte
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}")

Anwendungsfälle

  • Autoencoder
  • Negative Ausgaben erforderlich
  • Glatte Gradienten

Hinweis: ELU ist langsamer zu berechnen als ReLU, konvergiert aber schneller.


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

Andere Erweiterungen