estrutura DML_RESAMPLE_OPERATOR_DESC (directml.h)

Resampla elementos da origem para o tensor de destino, usando os fatores de escala para calcular o tamanho do tensor de destino. Você pode usar um modo de interpolação linear ou vizinho mais próximo. O operador dá suporte à interpolação em várias dimensões, não apenas 2D. Portanto, você pode manter o mesmo tamanho espacial, mas interpolar entre canais ou entre lotes.

Sintaxe

struct DML_RESAMPLE_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   ScaleCount;
  const FLOAT            *Scales;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

O tensor que contém os dados de entrada.

OutputTensor

Tipo: const DML_TENSOR_DESC*

O tensor para o qual gravar os dados de saída.

InterpolationMode

Tipo: DML_INTERPOLATION_MODE

Esse campo determina o tipo de interpolação usado para escolher pixels de saída.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. Usa o algoritmo Vizinho Mais Próximo , que escolhe o elemento de entrada mais próximo do centro de pixel correspondente para cada elemento de saída.

  • DML_INTERPOLATION_MODE_LINEAR. Usa o algoritmo Interpolação Linear , que calcula o elemento de saída calculando a média ponderada dos 2 elementos de entrada vizinhos mais próximos por dimensão. Há suporte para resampling em até 4 dimensões (quadrilinear), em que a média ponderada é calculada em um total de 16 elementos de entrada para cada elemento de saída.

ScaleCount

Tipo: UINT

O número de valores na matriz Scales aponta para. Esse valor deve corresponder à contagem de dimensões de InputTensor e OutputTensor.

Scales

Tipo: _Field_size_(ScaleCount) const FLOAT*

As escalas a serem aplicadas ao resampling da entrada, em que escala > 1 verticalmente a imagem e escala < 1 horizontalmente a imagem para essa dimensão. Observe que as escalas não precisam ser exatamente OutputSize / InputSize. Se a entrada após o dimensionamento for maior que o limite de saída, cortaremos para o tamanho da saída. Por outro lado, se a entrada após o dimensionamento for menor que o limite de saída, as bordas de saída serão fixadas.

Comentários

Uma versão mais recente desse operador, DML_RESAMPLE1_OPERATOR_DESC, foi introduzida em DML_FEATURE_LEVEL_2_1.

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_2_0.

Restrições do Tensor

InputTensor e OutputTensor devem ter os mesmos DataType e DimensionCount.

Suporte ao Tensor

DML_FEATURE_LEVEL_6_2 e superior

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

DML_FEATURE_LEVEL_5_1 e superior

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

DML_FEATURE_LEVEL_2_0 e superior

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

Requisitos

   
Cliente mínimo com suporte Windows 10, versão 2004 (10.0; Build 19041)
Servidor mínimo com suporte Windows Server, versão 2004 (10.0; Build 19041)
Cabeçalho directml.h