Compartilhar via


estrutura DML_ROI_POOLING_OPERATOR_DESC (directml.h)

Executa uma função MaxPool no tensor de entrada (de acordo com regiões de interesse ou ROIs). Para cada elemento de saída, as coordenadas de seu ROI correspondente na entrada são calculadas pelas equações a seguir.

Vamos Y ser um índice na terceira dimensão de InputTensor ({ BatchSize, ChannelCount, **height**, width }).

Vamos X ser um índice na quarta dimensão de InputTensor ({ BatchSize, ChannelCount, height, **width** }).

x1 = round(RoiX1 * SpatialScale)
x2 = round(RoiX2 * SpatialScale)
y1 = round(RoiY1 * SpatialScale)
y2 = round(RoiY2 * SpatialScale)

RegionHeight = y2 - y1 + 1
RegionWidth = x2 - x1 + 1

StartY = (OutputIndices.Y * RegionHeight) / PooledSize.Height + y1
StartX = (OutputIndices.X * RegionWidth) / PooledSize.Width + x1

EndY = ((OutputIndices.Y + 1) * RegionHeight + PooledSize.Height - 1) / PooledSize.Height + y1
EndX = ((OutputIndices.X + 1) * RegionWidth + PooledSize.Width - 1) / PooledSize.Width + x1

Se as coordenadas computadas estiverem fora dos limites, elas serão vinculadas aos limites de entrada.

Sintaxe

struct DML_ROI_POOLING_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *ROITensor;
  const DML_TENSOR_DESC *OutputTensor;
  FLOAT                 SpatialScale;
  DML_SIZE_2D           PooledSize;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de entrada com dimensões { BatchCount, ChannelCount, InputHeight, InputWidth }.

ROITensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de ROI (regiões de interesse). As dimensões esperadas de ROITensor são { 1, 1, NumROIs, 5 } e os dados para cada ROI são [BatchID, x1, y1, x2, y2]. x1, y1, x2, y2 são as coordenadas inclusivas dos cantos de cada ROI e x2 >= x1, y2 >= y1.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de saída. As dimensões esperadas de OutputTensor são { NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }.

SpatialScale

Tipo: FLOAT

Fator de escala espacial multiplicativo usado para traduzir as coordenadas ROI de sua escala de entrada para a escala usada durante o pool.

PooledSize

Tipo: DML_SIZE_2D

O tamanho da saída do pool de ROI (altura, largura), que deve corresponder às duas últimas dimensões de OutputTensor.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_1_0.

Restrições do Tensor

InputTensor, OutputTensor e ROITensor devem ter o mesmo DataType.

Suporte ao Tensor

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 4 FLOAT32, FLOAT16
ROITensor Entrada 4 FLOAT32, FLOAT16
OutputTensor Saída 4 FLOAT32, FLOAT16

Requisitos

   
Cabeçalho directml.h