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 |