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 |