Aller au contenu

yax.activations

Les fonctions d'activation.

Fonctions d'activation, désignées par leur nom ou passées directement.

Partout où yax attend une activation (yax.layers.MLP, yax.layers.MessagePassing_layer…), on peut donner un nom de ACTIVATIONS ("relu", "tanh", "gelu"…) ou une fonction : "gelu" et yax.activations.gelu désignent le même objet.

Pour qu'un modèle reste enregistrable, une activation personnelle doit être une fonction définie par def au niveau d'un module, pas une lambda.

ACTIVATIONS module-attribute

yax.activations.ACTIVATIONS = {'identity': identity, 'relu': relu, 'leaky_relu': leaky_relu, 'relu6': relu6, 'tanh': tanh, 'sigmoid': sigmoid, 'gelu': gelu, 'gelu_approximate': gelu_approximate, 'silu': silu, 'swish': silu, 'elu': elu, 'celu': celu, 'selu': selu, 'mish': mish, 'softplus': softplus}

resolve_activation

yax.activations.resolve_activation(activation)

Renvoie la fonction d'activation désignée par activation.

Paramètres :

Nom Type Description Défaut
activation str | Callable

un nom de ACTIVATIONS, ou une fonction, renvoyée telle quelle.

obligatoire

Lève :

Type Description
ValueError

si le nom est inconnu.

Code source dans yax/activations.py
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
def resolve_activation(activation: str | Callable) -> Callable:
    """Renvoie la fonction d'activation désignée par `activation`.

    Args:
        activation: un nom de `ACTIVATIONS`, ou une fonction, renvoyée telle quelle.

    Raises:
        ValueError: si le nom est inconnu.
    """
    if callable(activation):
        return _ALIAS.get(activation, activation)
    if activation in ACTIVATIONS:
        return ACTIVATIONS[activation]
    raise ValueError(
        f"activation inconnue : {activation!r}. Donnez une fonction, ou une "
        f"chaîne parmi : {', '.join(ACTIVATIONS)}.")