Condividi tramite


struttura DML_MAX_POOLING_GRAD_OPERATOR_DESC (directml.h)

Calcola le sfumature backpropagation per il pooling massimo (vedere DML_MAX_POOLING2_OPERATOR_DESC).

Si consideri un DML_MAX_POOLING2_OPERATOR_DESC 2x2 senza spaziatura interna né dilatazioni e uno stride pari a 1, che esegue le operazioni seguenti.

InputTensor             OutputTensor    IndicesTensor
[[1, 2, 3],   MaxPool    [[4, 4],        [[4, 4],
 [2, 4, 2],     -->       [6, 7]]         [7, 8]]
 [5, 6, 7]]

L'elemento più grande di ogni finestra 2x2 nel tensore di input produce un elemento dell'output. Di seguito è riportato un esempio dell'output di DML_MAX_POOLING_GRAD_OPERATOR_DESC, in base a parametri simili.

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]]

In effetti, questo operatore usa InputTensor per determinare l'indice dell'elemento più grande da ogni finestra e distribuisce i valori di InputGradientTensor in OutputGradientTensor in base a questi indici. Dove si sovrappongono gli indici, i valori vengono sommati. Gli elementi di output senza riferimenti vengono azzerato.

Nel caso di una cravatta (in cui più elementi in una finestra hanno lo stesso valore massimo), viene scelto l'elemento con l'indice dell'elemento logico più basso.

Sintassi

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;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore della funzionalità di input. Si tratta in genere dello stesso tensore fornito come InputTensor per DML_MAX_POOLING2_OPERATOR_DESC nel passaggio avanti.

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensore sfumatura in ingresso. Questo risultato viene in genere ottenuto dall'output di backpropagation di un livello precedente. In genere questo tensore avrà le stesse dimensioni dell'output del DML_MAX_POOLING2_OPERATOR_DESC corrispondente nel passaggio avanti.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensore di output contenente le sfumature backpropagated. In genere questo tensore avrà le stesse dimensioni dell'input del DML_MAX_POOLING2_OPERATOR_DESC corrispondente nel passaggio avanti.

DimensionCount

Tipo: UINT

Numero di elementi nelle matrici Strides, WindowSize, StartPadding, EndPadding e Dilations . Questo valore deve essere uguale al numero di dimensioni spaziali (DimensionCount di InputTensor - 2). Poiché questo operatore supporta solo tensori 4D, l'unico valore valido per questo parametro è 2.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

Vedere Strides in DML_MAX_POOLING2_OPERATOR_DESC.

WindowSize

Tipo: _Field_size_(DimensionCount) const UINT*

Vedere WindowSize in DML_MAX_POOLING2_OPERATOR_DESC.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Vedere StartPadding in DML_MAX_POOLING2_OPERATOR_DESC.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Vedere EndPadding in DML_MAX_POOLING2_OPERATOR_DESC.

Dilations

Tipo: _Field_size_(DimensionCount) const UINT*

Vedere Dilations in DML_MAX_POOLING2_OPERATOR_DESC( Dilations in DML_MAX_POOLING2_OPERATOR_DESC).

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_3_0.

Vincoli tensor

  • InputGradientTensor, InputTensor e OutputGradientTensor devono avere lo stesso Oggetto DataType e DimensionCount.
  • InputTensor e OutputGradientTensor devono avere le stesse dimensioni.

Supporto di Tensor

DML_FEATURE_LEVEL_4_0 e versioni successive

Tensore Tipo Dimensioni Conteggi delle dimensioni supportati Tipi di dati supportati
InputTensor Input { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } da 4 a 5 FLOAT32, FLOAT16
InputGradientTensor Input { BatchCount, ChannelCount, [OutputDepth], OutputHeight, OutputWidth } da 4 a 5 FLOAT32, FLOAT16
OutputGradientTensor Output { BatchCount, ChannelCount, [InputDepth], InputHeight, InputWidth } da 4 a 5 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_3_0 e versioni successive

Tensore Tipo Dimensioni Conteggi delle dimensioni supportati Tipi di dati supportati
InputTensor Input { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16
InputGradientTensor Input { BatchCount, ChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16
OutputGradientTensor Output { BatchCount, ChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16

Requisiti

   
Client minimo supportato Windows 10 Build 20348
Server minimo supportato Windows 10 Build 20348
Intestazione directml.h