DML_RESAMPLE1_OPERATOR_DESC 구조체(directml.h)
배율 인수를 사용하여 원본에서 대상 텐서로 요소를 다시 샘플링하여 대상 텐서 크기를 계산합니다. 선형 또는 가장 가까운 인접 보간 모드를 사용할 수 있습니다. 연산자는 2D뿐만 아니라 여러 차원의 보간을 지원합니다. 따라서 동일한 공간 크기를 유지할 수 있지만 채널 간 또는 일괄 처리 간에 보간할 수 있습니다. 입력 좌표와 출력 좌표 간의 관계는 다음과 같습니다.
OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset
구문
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;
};
멤버
InputTensor
형식: const DML_TENSOR_DESC*
입력 데이터를 포함하는 텐서입니다.
OutputTensor
형식: const DML_TENSOR_DESC*
출력 데이터를 쓸 텐서입니다.
InterpolationMode
이 필드는 출력 픽셀을 선택하는 데 사용되는 보간 종류를 결정합니다.
DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR. 각 출력 요소의 해당 픽셀 가운데에 가장 가까운 입력 요소를 선택하는 가장 가까운 인접 알고리즘을 사용합니다.
DML_INTERPOLATION_MODE_LINEAR. 차원당 가장 인접한 2개 입력 요소의 가중 평균을 계산하여 출력 요소를 계산하는 선형 보간 알고리즘을 사용합니다. 리샘플링은 최대 4차원(쿼드라이선형)으로 지원되며, 가중 평균은 각 출력 요소에 대해 총 16개의 입력 요소에서 계산됩니다.
DimensionCount
형식: UINT
Scales, InputPixelOffsets 및 OutputPixelOffsets가 가리키는 배열 의 값 수입니다. 이 값은 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
합니다.
설명
InputPixelOffsets가 0.5로 설정되고 OutputPixelOffsets가 -0.5로 설정된 경우 이 연산자는 DML_RESAMPLE_OPERATOR_DESC 동일합니다.
가용성
이 연산자는 에서 DML_FEATURE_LEVEL_2_1
도입되었습니다.
텐서 제약 조건
InputTensor 및 OutputTensor 에는 동일한 DataType 및 DimensionCount가 있어야 합니다.
텐서 지원
DML_FEATURE_LEVEL_6_2 이상
텐서 | 종류 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|
InputTensor | 입력 | 1~4 | FLOAT32, FLOAT16, INT8, UINT8 |
OutputTensor | 출력 | 1~4 | FLOAT32, FLOAT16, INT8, UINT8 |
DML_FEATURE_LEVEL_5_1 이상
텐서 | 종류 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|
InputTensor | 입력 | 1~4 | FLOAT32, FLOAT16 |
OutputTensor | 출력 | 1~4 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_2_1 이상
텐서 | 종류 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|
InputTensor | 입력 | 4 | FLOAT32, FLOAT16 |
OutputTensor | 출력 | 4 | FLOAT32, FLOAT16 |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 빌드 20348 |
지원되는 최소 서버 | Windows 10 빌드 20348 |
머리글 | directml.h |