structure DML_MAX_POOLING_GRAD_OPERATOR_DESC (directml.h)
Calcule les gradients de backpropagation pour le regroupement maximal (voir DML_MAX_POOLING2_OPERATOR_DESC).
Considérez un DML_MAX_POOLING2_OPERATOR_DESC 2x2 sans remplissage ni dilatations et une foulée de 1, ce qui effectue ce qui suit.
InputTensor OutputTensor IndicesTensor
[[1, 2, 3], MaxPool [[4, 4], [[4, 4],
[2, 4, 2], --> [6, 7]] [7, 8]]
[5, 6, 7]]
Le plus grand élément de chaque fenêtre 2x2 dans le tenseur d’entrée produit un élément de la sortie. Vous trouverez ci-dessous un exemple de sortie de DML_MAX_POOLING_GRAD_OPERATOR_DESC, en fonction de paramètres similaires.
InputTensor InputGradientTensor OutputGradientTensor
[[1, 2, 3], [[1, 2], MaxPoolGrad [[0, 0, 0],
[2, 4, 2], [4, 5]] --> [0, 3, 0],
[5, 6, 7]] [0, 4, 5]]
En effet, cet opérateur utilise inputTensor pour déterminer l’index du plus grand élément de chaque fenêtre et distribue les valeurs d’InputGradientTensor dans le OutputGradientTensor en fonction de ces index. Lorsque les index se chevauchent, les valeurs sont additionnées. Tous les éléments de sortie non référencés sont mis à zéro.
Dans le cas d’une égalité (où plusieurs éléments d’une fenêtre ont la même valeur maximale), l’élément avec l’index d’élément logique le plus bas est choisi.
Syntaxe
struct DML_MAX_POOLING_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *WindowSize;
const UINT *StartPadding;
const UINT *EndPadding;
const UINT *Dilations;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tenseur de fonctionnalité d’entrée. Il s’agit généralement du même tenseur que celui fourni comme inputTensor pour DML_MAX_POOLING2_OPERATOR_DESC dans la passe avant.
InputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de dégradé entrant. Cela est généralement obtenu à partir de la sortie de backpropagation d’une couche précédente. En règle générale, ce tenseur a les mêmes tailles que la sortie du DML_MAX_POOLING2_OPERATOR_DESC correspondant dans la passe avant.
OutputGradientTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie contenant les dégradés backpropagés. En règle générale, ce tenseur a les mêmes tailles que l’entrée du DML_MAX_POOLING2_OPERATOR_DESC correspondant dans la passe avant.
DimensionCount
Type : UINT
Nombre d’éléments dans les tableaux Strides, WindowSize, StartPadding, EndPadding et Dilations . Cette valeur doit être égale au nombre de dimensions spatiales (DimensionCount d’InputTensor - 2). Comme cet opérateur prend uniquement en charge les tenseurs 4D, la seule valeur valide pour ce paramètre est 2.
Strides
Type : _Field_size_(DimensionCount) const UINT*
Consultez Foulées dans DML_MAX_POOLING2_OPERATOR_DESC.
WindowSize
Type : _Field_size_(DimensionCount) const UINT*
Consultez WindowSize dans DML_MAX_POOLING2_OPERATOR_DESC.
StartPadding
Type : _Field_size_(DimensionCount) const UINT*
Consultez StartPadding dans DML_MAX_POOLING2_OPERATOR_DESC.
EndPadding
Type : _Field_size_(DimensionCount) const UINT*
Consultez EndPadding dans DML_MAX_POOLING2_OPERATOR_DESC.
Dilations
Type : _Field_size_(DimensionCount) const UINT*
Voir Dilatations dans DML_MAX_POOLING2_OPERATOR_DESC.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_3_0
.
Contraintes tensoriels
- InputGradientTensor, InputTensor et OutputGradientTensor doivent avoir les mêmes DataType et DimensionCount.
- InputTensor et OutputGradientTensor doivent avoir les mêmes tailles.
Prise en charge de Tensor
DML_FEATURE_LEVEL_4_0 et versions ultérieures
Tenseur | Type | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } | 4 à 5 | FLOAT32, FLOAT16 |
InputGradientTensor | Entrée | { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } | 4 à 5 | FLOAT32, FLOAT16 |
OutputGradientTensor | Output | { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } | 4 à 5 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Type | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { BatchCount, ChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16 |
InputGradientTensor | Entrée | { BatchCount, ChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT32, FLOAT16 |
OutputGradientTensor | Output | { BatchCount, ChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16 |
Spécifications
Client minimal pris en charge | Windows 10 Build 20348 |
Serveur minimal pris en charge | Windows 10 Build 20348 |
En-tête | directml.h |