Fonction torch.nn.ELU de PyTorch

PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch


torch.nn.ELUIl s'agit de la fonction d'activation de l'unité linéaire exponentielle dans PyTorch.

Elle utilise une fonction exponentielle pour les valeurs négatives, permettant des sorties non nulles pour les valeurs négatives et des gradients plus lisses.

Définition de fonction

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

Formule

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

Exemples d'utilisation

Exemple 1 : Utilisation de base

Exemple

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(Entrée :, x.tolist())
print(Sortie :, output.tolist())

Exemple 2 : Comparaison avec ReLU

Exemple

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

Exemple 3 : Paramètre alpha

Exemple

import torch
import torch.nn as nn

# Différentes valeurs 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}")

Cas d'utilisation

  • Autoencodeurs
  • Nécessité de sorties négatives
  • Gradients lisses

Remarque : ELU est plus lent à calculer que ReLU, mais converge plus rapidement.


PyTorch torch.nn 参考手册Manuel de référence torch.nn de PyTorch

Autres extensions