Opérations binaires, Microsoft Docs

Paramètres

Les dimensions de x et y doivent correspondre (sous réserve des règles de radiodiffusion. Voir ci-dessous).

Pour les trois opérations booléennes, les deux entrées devraient être 0 ou 1, sinon le comportement des fonctions est indéterminée, et va changer dans des faits dans les futures versions.

Les valeurs clairsemés ne sont actuellement pas pris en charge.

Valeur de retour

Ces fonctions renvoient le résultat des opérations correspondantes. Les opérateurs de relation (égalité (), etc.) et les trois opérations booléennes renvoient des valeurs qui sont 0 ou 1.

La forme de la dimension de sortie ou tenseur est identique à celui des entrées, sous réserve de diffusion, voir ci-dessous.

descriptions

Ce sont les opérateurs binaires communs. Ils sont appliqués par éléments. (Notez que l'opérateur * de BrainScript n'est pas par éléments, mais représente le produit de la matrice. Ceci est différent, par exemple, de la bibliothèque numpy de Python.)

Les dimensions des entrées doivent être identiques, à l'exception de la radiodiffusion.

la sémantique de radiodiffusion

La radiodiffusion, un concept que les modèles CNTK après la bibliothèque numpy de Python, signifie qu'une dimension dans l'une des entrées peut être 1 où n'est pas de l'autre entrée. Dans ce cas, l'entrée avec la 1-dimension est copiée n fois, où n est la dimension de l'autre entrée correspondante. Si les rangs de tenseurs ne correspondent pas, la forme du tenseur de l'entrée avec des dimensions moins sera supposée 1 et déclencher la diffusion.

Par exemple, l'ajout d'un [13 x 1] à un tenseur [1 x 42] vecteur donnerait un [13 x 42] vecteur qui contient les sommes de toutes les combinaisons.

Opérations de relations

Les opérateurs de relation (égalité (), etc.) ne sont pas différentiables, leur gradient est toujours considéré comme 0. Ils peuvent être utilisés pour les drapeaux, par exemple comme argument de condition dans l'opération Si ().

L'opération LogPlus () calcule la somme des valeurs représentées sous forme logarithmique. C'est à dire. il calcule:

où x et y sont des logarithmes des valeurs. Cette opération est utile pour traiter des probabilités, qui sont souvent si petite que seule une représentation logarithmique permet une précision numérique appropriée.

Note: Un autre nom commun pour cette opération est log-add-exp, par exemple SciPy.

Couche sigmoïde standard

Cette couche utilise le + binaire par éléments:

Notez que * ci-dessus est non élément par élément, mais représente le produit de la matrice.

La mise en œuvre alternative de l'activation Softmax

La fonction d'activation Softmax () peut être écrit en utilisant la diffusion Moins:

Ici, ReduceLogSum () réduit le vecteur z à un scalaire en calculant la somme logarithmique. Grâce à la sémantique de radiodiffusion de soustraction, ce scalaire est alors soustrait de chaque valeur d'entrée. Ceci implémente la division par la somme sur toutes les valeurs de la fonction Softmax.

Max de deux par éléments entrées

Le maximum de deux entrées par éléments peut être calculé comme une combinaison du Grand () et Si ():

Cela fonctionne également avec la diffusion. Par exemple, le redresseur linéaire peut être écrit avec cela en utilisant une constante scalaire comme la deuxième entrée:

Articles Liés