Condividi tramite


struttura DML_MAX_POOLING2_OPERATOR_DESC (directml.h)

Calcola il valore massimo tra gli elementi all'interno della finestra scorrevole sul tensore di input e, facoltativamente, restituisce gli indici dei valori massimi selezionati.

Sintassi

struct DML_MAX_POOLING2_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;
  const UINT            *Dilations;
};

Membri

InputTensor

Tipo: const DML_TENSOR_DESC*

Un tensore di input di dimensioni { BatchCount, ChannelCount, Height, Width } se InputTensor.DimensionCount è 4 e { BatchCount, ChannelCount, Depth, Height, Weight } se InputTensor.DimensionCount è 5.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Tensore di output in cui scrivere i risultati. Le dimensioni del tensore di output possono essere calcolate nel modo seguente.

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

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Tensore di output facoltativo degli indici nel tensore di input InputTensor dei valori massimi prodotti e archiviati nella OutputTensor. Questi valori di indice sono in base zero e considerano il tensore di input come matrice unidimensionale contigua. Quando più elementi all'interno della finestra scorrevole hanno lo stesso valore, i valori uguali successivi vengono ignorati e l'indice punta al primo valore rilevato. Sia il OutputTensor che OutputIndicesTensor hanno le stesse dimensioni del tensore.

DimensionCount

Tipo: UINT

Numero di dimensioni spaziali del tensore di input InputTensor, che corrisponde anche al numero di dimensioni della finestra scorrevole WindowSize. Questo valore determina anche le dimensioni delleStrides, StartPaddinge matrici di EndPadding. Deve essere impostato su 2 quando InputTensor è 4D e 3 quando si tratta di un tensore 5D.

Strides

Tipo: _Field_size_(DimensionCount) const UINT*

I passi per le dimensioni della finestra temporale scorrevole delle dimensioni quando la DimensionCount è impostata su 2 o se impostata su 3.

WindowSize

Tipo: _Field_size_(DimensionCount) const UINT*

Dimensioni della finestra temporale scorrevole in { Height, Width } quando DimensionCount è impostato su 2 o { Depth, Height, Width } se impostato su 3.

StartPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Numero di elementi di riempimento da applicare all'inizio di ogni dimensione spaziale del tensore di input InputTensor. I valori si trovano in { Height, Width } quando DimensionCount è impostato su 2 o { Depth, Height, Width } se impostato su 3.

EndPadding

Tipo: _Field_size_(DimensionCount) const UINT*

Numero di elementi di riempimento da applicare alla fine di ogni dimensione spaziale del tensore di input InputTensor. I valori si trovano in { Height, Width } quando DimensionCount è impostato su 2 o { Depth, Height, Width } se impostato su 3.

Dilations

Tipo: _Field_size_(DimensionCount) const UINT*

I valori per ogni dimensione spaziale del tensore di input InputTensor in base al quale viene selezionato un elemento all'interno della finestra scorrevole per ogni elemento di tale valore. I valori si trovano in { Height, Width } quando DimensionCount è impostato su 2 o { Depth, Height, Width } se impostato su 3.

Osservazioni

DML_MAX_POOLING2_OPERATOR_DESC sostituisce la versione precedente DML_MAX_POOLING_OPERATOR1_DESC con una matrice costante aggiuntiva Dilations. Le due versioni sono equivalenti quando dilations è impostato su { 1,1 } per l'input 4D o { 1,1,1 } per le funzionalità di input 5D.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_2_1.

Vincoli tensor

  • InputTensor, OutputIndicesTensore OutputTensor devono avere lo stesso DimensionCount.
  • InputTensor e OutputTensor devono avere lo stesso DataType.

Supporto tensor

DML_FEATURE_LEVEL_5_0 e versioni successive

Tensore Gentile Conteggi delle dimensioni supportati Tipi di dati supportati
InputTensor Immissione Da 4 a 5 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor Prodotto Da 4 a 5 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputIndicesTensor Output facoltativo Da 4 a 5 UINT64, UINT32

DML_FEATURE_LEVEL_3_0 e versioni successive

Tensore Gentile Conteggi delle dimensioni supportati Tipi di dati supportati
InputTensor Immissione Da 4 a 5 FLOAT32, FLOAT16, INT8, UINT8
OutputTensor Prodotto Da 4 a 5 FLOAT32, FLOAT16, INT8, UINT8
OutputIndicesTensor Output facoltativo Da 4 a 5 UINT32

DML_FEATURE_LEVEL_2_1 e versioni successive

Tensore Gentile Conteggi delle dimensioni supportati Tipi di dati supportati
InputTensor Immissione Da 4 a 5 FLOAT32, FLOAT16
OutputTensor Prodotto Da 4 a 5 FLOAT32, FLOAT16
OutputIndicesTensor Output facoltativo Da 4 a 5 UINT32

Fabbisogno

Requisito Valore
client minimo supportato Windows 10, versione 2004 (10.0; Build 19041)
server minimo supportato Windows Server, versione 2004 (10.0; Build 19041)
intestazione directml.h