PyTorch torch.nn.ELU Funktion
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())
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}")
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}")
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.
Andere Erweiterungen