다음을 통해 공유


DML_RESAMPLE2_OPERATOR_DESC 구조체(directml.h)

배율 인수를 사용하여 원본에서 대상 텐서로 요소를 다시 샘플링하여 대상 텐서 크기를 계산합니다. 선형 또는 가장 가까운 인접 보간 모드를 사용할 수 있습니다. 연산자는 2D뿐만 아니라 여러 차원의 보간을 지원합니다. 따라서 동일한 공간 크기를 유지할 수 있지만 채널 간 또는 일괄 처리 간에 보간할 수 있습니다. 입력 좌표와 출력 좌표 간의 관계는 다음과 같습니다.

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

중요합니다

이 API는 DirectML 독립 실행형 재배포 가능 패키지의 일부로 사용할 수 있습니다( Microsoft.AI.DirectML 버전 1.9 이상 참조). 또한 DirectML 버전 기록 참조하세요.

문법

struct DML_RESAMPLE2_OPERATOR_DESC
{
    const DML_TENSOR_DESC* InputTensor;
    const DML_TENSOR_DESC* OutputTensor;
    DML_INTERPOLATION_MODE InterpolationMode;
    DML_AXIS_DIRECTION RoundingDirection;
    UINT DimensionCount;
    _Field_size_(DimensionCount) const FLOAT* Scales;
    _Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
    _Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
};

구성원

InputTensor

형식: const DML_TENSOR_DESC*

입력 데이터를 포함하는 텐서입니다.

OutputTensor

형식: const DML_TENSOR_DESC*

출력 데이터를 쓸 텐서입니다.

InterpolationMode

형식: DML_INTERPOLATION_MODE

이 필드는 출력 픽셀을 선택하는 데 사용되는 보간 종류를 결정합니다.

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. 각 출력 요소에 대한 해당 픽셀 오프셋에 가장 가까운 입력 요소를 선택하는 가장 가까운 인접 알고리즘을 사용합니다.

  • DML_INTERPOLATION_MODE_LINEAR. 차원당 가장 가까운 두 입력 요소의 가중 평균을 계산하여 출력 요소를 계산하는 선형 보간 알고리즘을 사용합니다. 다시 샘플링은 최대 4개의 차원(쿼드리라인)으로 지원되며, 가중 평균은 각 출력 요소에 대한 총 16개의 입력 요소에 대해 계산됩니다.

RoundingDirection

형식: DML_AXIS_DIRECTION

분수 좌표를 입력 픽셀에 다시 매핑할 때 각 축을 따라 반올림할 방향입니다. 양방향 보간은 어쨌든 소수 좌표를 보간하므로 DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR 영향을 줍니다.

  • DML_AXIS_DIRECTION_INCREASING. 축 값(ceil)을 늘리기 위해 소수 좌표를 반올림합니다.

  • DML_AXIS_DIRECTION_DECREASING. 축 값(바닥)을 줄이는 방향으로 소수 좌표를 반올림합니다.

DimensionCount

형식: UINT

Scales, InputPixelOffsetsOutputPixelOffsets 배열의 요소 수입니다. 이 값은 InputTensor 및 OutputTensor차원 수와 일치해야 합니다.

Scales

형식: _Field_size_(DimensionCount) const FLOAT*

입력을 다시 샘플링할 때 적용할 크기 조정입니다. 여기서 크기 조정 > 1은 이미지를 확장하고 < 1은 해당 차원의 이미지를 스케일 다운합니다. 배율을 정확히 OutputSize / InputSize필요는 없습니다. 크기 조정 후 입력이 출력 바인딩보다 크면 출력 크기로 자른다. 반면, 크기 조정 후 입력이 출력 바인딩보다 작으면 출력 가장자리가 고정됩니다.

InputPixelOffsets

형식: _Field_size_(DimensionCount) const FLOAT*

다시 샘플링하기 전에 입력 픽셀에 적용할 오프셋입니다. 이 값이 0이면 픽셀의 왼쪽 위 모서리가 중심 대신 사용되므로 일반적으로 예상 결과를 제공하지 않습니다. 픽셀의 중심을 사용하여 이미지를 다시 샘플링하고 DML_RESAMPLE_OPERATOR_DESC것과 동일한 동작을 얻으려면 이 값은 0.5여야 합니다.

OutputPixelOffsets

형식: _Field_size_(DimensionCount) const FLOAT*

다시 샘플링한 후 출력 픽셀에 적용할 오프셋입니다. 이 값이 0이면 픽셀의 왼쪽 위 모서리가 중심 대신 사용되므로 일반적으로 예상 결과를 제공하지 않습니다. 픽셀의 중심을 사용하여 이미지를 다시 샘플링하고 DML_RESAMPLE_OPERATOR_DESC 동일한 동작을 얻으려면 이 값이 -0.5여야 합니다.

비고

이 연산자는 InterpolationModeDML_INTERPOLATION_MODE_LINEAR;로 설정된 경우 DML_RESAMPLE1_OPERATOR_DESC 동일합니다. 또는 InterpolationModeDML_INTERPOLATION_MODE_NEAREST_NEIGHBOR 설정되고 RoundingDirectionDML_AXIS_DIRECTION_DECREASINGOutputPixelOffsets가 추가로 -0.5로 조정되는 경우

가용도

이 연산자는 DML_FEATURE_LEVEL_5_1 도입되었습니다.

Tensor 제약 조건

InputTensorOutputTensor 에는 동일한 DataTypeDimensionCount가 있어야 합니다.

Tensor 지원

DML_FEATURE_LEVEL_6_2 이상

텐서 친절한 지원되는 차원 수 지원되는 데이터 형식
입력 텐서 입력 1~4 FLOAT32, FLOAT16, INT8, UINT8
출력텐서 출력 1~4 FLOAT32, FLOAT16, INT8, UINT8

DML_FEATURE_LEVEL_5_1 이상

텐서 친절한 지원되는 차원 수 지원되는 데이터 형식
입력 텐서 입력 1~4 FLOAT32, FLOAT16
출력텐서 출력 1~4 FLOAT32, FLOAT16

요구 사항

   
머리글 directml.h