DML_DEPTH_TO_SPACE_OPERATOR_DESC structure (directml.h)
Réorganise (permute) les données de profondeur en blocs de données spatiales. L’opérateur génère une copie du tenseur d’entrée où les valeurs de la dimension de profondeur sont déplacées dans des blocs spatiaux vers les dimensions de hauteur et de largeur.
Il s’agit de la transformation inverse de DML_SPACE_TO_DEPTH_OPERATOR_DESC.
Syntaxe
struct DML_DEPTH_TO_SPACE_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT BlockSize;
};
Membres
InputTensor
Type : const DML_TENSOR_DESC*
Tenseur à partir duquel lire. Les dimensions du tenseur d’entrée sont { BatchCount, InputChannelCount, InputHeight, InputWidth }
.
OutputTensor
Type : const DML_TENSOR_DESC*
Tenseur dans lequel écrire les résultats. Les dimensions du tenseur de sortie sont { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
, où :
- OutputChannelCount est calculé en tant que InputChannelCount / (BlockSize * BlockSize).
- OutputHeight est calculé en tant que InputHeight * BlockSize.
- OutputWidth est calculé en tant que InputWidth * BlockSize.
BlockSize
Type : UINT
Largeur et hauteur des blocs déplacés.
Exemple
BlockSize: 2
InputTensor: (Sizes:{1, 8, 2, 3}, DataType:UINT32)
[[[[0, 1, 2],
[3, 4, 5]],
[[9, 10, 11],
[12, 13, 14]],
[[18, 19, 20],
[21, 22, 23]],
[[27, 28, 29],
[30, 31, 32]],
[[36, 37, 38],
[39, 40, 41]],
[[45, 46, 47],
[48, 49, 50]],
[[54, 55, 56],
[57, 58, 59]],
[[63, 64, 65],
[66, 67, 68]]]]
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
[[[[ 0, 18, 1, 19, 2, 20],
[36, 54, 37, 55, 38, 56],
[ 3, 21, 4, 22, 5, 23],
[39, 57, 40, 58, 41, 59]],
[[ 9, 27, 10, 28, 11, 29],
[45, 63, 46, 64, 47, 65],
[12, 30, 13, 31, 14, 32],
[48, 66, 49, 67, 50, 68]]]]
Remarques
Une version plus récente de cet opérateur, DML_DEPTH_TO_SPACE1_OPERATOR_DESC, a été introduite dans DML_FEATURE_LEVEL_2_1
.
Disponibilité
Cet opérateur a été introduit dans DML_FEATURE_LEVEL_1_0
.
Contraintes tensoriels
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 | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
OutputTensor | Sortie | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_2_1 et versions ultérieures
Tenseur | Genre | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
OutputTensor | Sortie | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8 |
DML_FEATURE_LEVEL_1_0 et versions ultérieures
Tenseur | Genre | Dimensions | Nombre de dimensions pris en charge | Types de données pris en charge |
---|---|---|---|---|
InputTensor | Entrée | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Sortie | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | FLOAT32, FLOAT16 |
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | directml.h |