estrutura DML_RESAMPLE1_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. A relação entre as coordenadas de entrada e saída é a seguinte.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

Sintaxe

struct DML_RESAMPLE1_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

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.

DimensionCount

Tipo: UINT

O número de valores nas matrizes para as quais Scales, InputPixelOffsets e OutputPixelOffsets apontam. Esse valor deve corresponder à contagem de dimensões de InputTensor e OutputTensor.

Scales

Tipo: _Field_size_(DimensionCount) 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.

InputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Os deslocamentos a serem aplicados aos pixels de entrada antes de resampling. Quando esse valor é 0, o canto superior esquerdo do pixel é usado em vez de seu centro, o que geralmente não dará o resultado esperado. Para resamplar a imagem usando o centro dos pixels e obter o mesmo comportamento que DML_RESAMPLE_OPERATOR_DESC, esse valor deve ser 0.5.

OutputPixelOffsets

Tipo: _Field_size_(DimensionCount) const FLOAT*

Os deslocamentos a serem aplicados aos pixels de saída após a resampa. Quando esse valor é 0, o canto superior esquerdo do pixel é usado em vez de seu centro, o que geralmente não dará o resultado esperado. Para resamplar a imagem usando o centro dos pixels e obter o mesmo comportamento que DML_RESAMPLE_OPERATOR_DESC, esse valor deve ser -0.5.

Comentários

Quando inputPixelOffsets são definidos como 0,5 e OutputPixelOffsets são definidos como -0,5, esse operador é equivalente a DML_RESAMPLE_OPERATOR_DESC.

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_2_1.

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

Requisito Valor
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho directml.h