DML_MAX_POOLING1_OPERATOR_DESC structure (directml.h)
Calcule la valeur maximale entre les éléments de la fenêtre glissante sur le tenseur d’entrée et retourne éventuellement les index des valeurs maximales sélectionnées.
Syntaxe
struct DML_MAX_POOLING1_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputIndicesTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *WindowSize;
const UINT *StartPadding;
const UINT *EndPadding;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Un tenseur d’entrée de Sizes{ BatchCount, ChannelCount, Height, Width }
si InputTensor.DimensionCount a la valeur 4 et { BatchCount, ChannelCount, Depth, Height, Weight }
si InputTensor.DimensionCount a la valeur 5.
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur de sortie dans lequel écrire les résultats. Les tailles du tenseur de sortie peuvent être calculées comme suit.
OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];
for (UINT i = 0; i < DimensionCount; ++i) {
UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}
OutputIndicesTensor
Type : _Maybenull_ const DML_TENSOR_DESC*
Un tenseur de sortie facultatif d’index vers le tenseur d’entrée InputTensor des valeurs maximales produites et stockées dans le OutputTensor. Ces valeurs d’index sont de base zéro et traitent le tenseur d’entrée comme un tableau unidimensionnel contigu. Lorsque plusieurs éléments de la fenêtre glissante ont la même valeur, les valeurs égales ultérieures sont ignorées et l’index pointe vers la première valeur rencontrée. OutputTensor et OutputIndicesTensor ont les mêmes tailles de tenseurs.
DimensionCount
Type : UINT
Nombre de dimensions spatiales du tenseur d’entrée InputTensor, qui correspond également au nombre de dimensions de la fenêtre glissante WindowSize. Cette valeur détermine également la taille des tableaux Strides, StartPadding et EndPadding . Il doit être défini sur 2 lorsque InputTensor a la valeur 4D, et 3 quand il s’agit d’un tenseur 5D.
Strides
Type : _Field_size_(DimensionCount) const UINT*
Les foulées pour les dimensions de fenêtre glissantes des tailles { Height, Width }
lorsque DimensionCount est défini sur 2, ou { Depth, Height, Width }
quand la valeur est définie sur 3.
WindowSize
Type : _Field_size_(DimensionCount) const UINT*
Dimensions de la fenêtre glissante dans { Height, Width }
lorsque DimensionCount a la valeur 2 ou { Depth, Height, Width }
3.
StartPadding
Type : _Field_size_(DimensionCount) const UINT*
Nombre d’éléments de remplissage à appliquer au début de chaque dimension spatiale du tenseur d’entrée InputTensor. Les valeurs se trouvent dans { Height, Width }
lorsque DimensionCount a la valeur 2 ou { Depth, Height, Width }
3.
EndPadding
Type : _Field_size_(DimensionCount) const UINT*
Nombre d’éléments de remplissage à appliquer à la fin de chaque dimension spatiale du tenseur d’entrée InputTensor. Les valeurs se trouvent dans { Height, Width }
lorsque DimensionCount a la valeur 2 ou { Depth, Height, Width }
3.
Remarques
Lorsque OutputIndicesTensor a la valeur NULL, cet opérateur équivaut à DML_MAX_POOLING_OPERATOR_DESC.
Une version plus récente de cet opérateur, DML_MAX_POOLING2_OPERATOR_DESC, a été introduite dans DML_FEATURE_LEVEL_2_1
.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_2_0
.
Contraintes tensoriels
- InputTensor, OutputIndicesTensor et OutputTensor doivent avoir le même DimensionCount.
- InputTensor et OutputTensor doivent avoir le même DataType.
Prise en charge des tenseurs
DML_FEATURE_LEVEL_5_0 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 à 5 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Sortie | 4 à 5 | FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputIndicesTensor | Sortie facultative | 4 à 5 | UINT64, UINT32 |
DML_FEATURE_LEVEL_3_0 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 à 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputTensor | Sortie | 4 à 5 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputIndicesTensor | Sortie facultative | 4 à 5 | UINT32 |
DML_FEATURE_LEVEL_2_0 et versions ultérieures
Tenseur | Genre | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|
InputTensor | Entrée | 4 à 5 | FLOAT32, FLOAT16 |
OutputTensor | Sortie | 4 à 5 | FLOAT32, FLOAT16 |
OutputIndicesTensor | Sortie facultative | 4 à 5 | UINT32 |
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 10, version 2004 (10.0 ; Build 19041) |
Serveur minimal pris en charge | Windows Server, version 2004 (10.0 ; Build 19041) |
En-tête | directml.h |