DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC structure (directml.h)
Calcule les gradients de rétropropagation pour DML_OPERATOR_ELEMENT_WISE_CLIP1.
f(x, gradient) = if x <= Min then 0
if x >= Max then 0
else then gradient
Cet opérateur prend en charge l’exécution sur place, ce qui signifie que OutputTensor est autorisé à alias InputTensor pendant la liaison.
Syntaxe
struct DML_ELEMENT_WISE_CLIP_GRAD1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
DML_TENSOR_DATA_TYPE MinMaxDataType;
DML_SCALAR_UNION Min;
DML_SCALAR_UNION Max;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tensoreur de la fonctionnalité d’entrée. Il s’agit généralement du même tenseur que celui fourni comme inputTensor pour DML_OPERATOR_ELEMENT_WISE_CLIP1 dans la passe avant.
InputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de gradient entrant. Cela est généralement obtenu à partir de la sortie de la rétropropagation d’une couche précédente. En règle générale, ce tenseur a les mêmes tailles que la sortie du DML_OPERATOR_ELEMENT_WISE_CLIP1 correspondant dans la passe avant.
OutputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie contenant les dégradés rétropropagés. En règle générale, ce tenseur a les mêmes tailles que l’entrée du DML_OPERATOR_ELEMENT_WISE_CLIP1 correspondant dans la passe avant.
MinMaxDataType
Type : DML_TENSOR_DATA_TYPE
Type de données des membres Min et Max , qui doit correspondre à OutputTensor.DataType.
Min
Type : DML_SCALAR_UNION
Valeur minimale. Si x est égal ou inférieur à cette valeur, le résultat du dégradé est 0. MinMaxDataType détermine comment interpréter le champ.
Max
Type : DML_SCALAR_UNION
Valeur maximale. Si x est égal ou supérieur à cette valeur, le résultat du dégradé est 0. MinMaxDataType détermine comment interpréter le champ.
Remarques
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_5_0.
Contraintes tensoriels
InputGradientTensor, InputTensor et OutputGradientTensor doivent avoir les mêmes DataType, DimensionCount et Sizes.
Prise en charge des tenseurs
Tenseur | Type | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 1 à 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
InputGradientTensor | Entrée | 1 à 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputGradientTensor | Output | 1 à 8 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
Configuration requise
En-tête | directml.h |