다음을 통해 공유


DML_REDUCE_OPERATOR_DESC 구조체(directml.h)

입력 텐서의 하나 이상의 차원 내에서 요소의 감소(합계, 제품, 최소값 등)를 출력합니다.

각 출력 요소는 입력 텐서의 하위 집합에 감소 함수를 적용한 결과입니다. sum과 같은 감소 함수는 입력 요소를 단일 출력 요소에 매핑합니다N. 각 감소에 관련된 입력 요소는 제공된 입력 축 N 에 의해 결정됩니다. 는 축소된 축 크기의 곱과 같습니다. 모든 입력 축이 지정된 경우 연산자는 전체 입력 텐서에서 축소를 수행하고 단일 출력 요소를 생성합니다.

구문

struct DML_REDUCE_OPERATOR_DESC {
  DML_REDUCE_FUNCTION   Function;
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  AxisCount;
  const UINT            *Axes;
};

멤버

Function

형식: DML_REDUCE_FUNCTION

입력에 적용할 감소 함수를 지정합니다.

InputTensor

형식: const DML_TENSOR_DESC*

읽을 텐서입니다.

OutputTensor

형식: const DML_TENSOR_DESC*

결과를 쓸 텐서입니다. 각 출력 요소는 InputTensor에서 요소의 하위 집합을 줄인 결과입니다.

  • DimensionCountInputTensor.DimensionCount 와 일치해야 합니다(입력 텐서의 순위는 유지됨).
  • 크기는 크기가 1이어야 하는 축소된 축에 포함된 차원을 제외하고 InputTensor.Sizes와 일치해야 합니다.

AxisCount

형식: UINT

줄일 축의 수입니다. 이 필드는 축 배열의 크기를 결정 합니다 .

Axes

형식: _Field_size_(AxisCount) const UINT*

줄일 축입니다. 값은 범위에 [0, InputTensor.DimensionCount - 1]있어야 합니다.

예제

다음 예제에서는 모두 동일한 2차원 입력 텐서를 사용합니다.

InputTensor: (Sizes:{3, 3}, DataType:FLOAT32)
[[1, 2, 3],
 [3, 0, 4],
 [2, 4, 2]]

예제 1. 열에 합계 적용

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 1
Axes: {0}
OutputTensor: (Sizes:{1, 3}, DataType:FLOAT32)
[[6,  // sum({1, 3, 2})
  6,  // sum({2, 0, 4})
  9]] // sum({3, 4, 2})

예제 2. 행에 합계 적용

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 1
Axes: {1}
OutputTensor: (Sizes:{3, 1}, DataType:FLOAT32)
[[6], // sum({1, 2, 3})
 [7], // sum({3, 0, 4})
 [8]] // sum({2, 4, 2})

예제 3.모든 축에 합계 적용(전체 텐서)

Function: DML_REDUCE_FUNCTION_SUM
AxisCount: 2
Axes: {0, 1}
OutputTensor: (Sizes:{1, 1}, DataType:FLOAT32)
[[21]]  // sum({1, 2, 3, 3, 0, 4, 2, 5, 2})

가용성

이 연산자는 에서 DML_FEATURE_LEVEL_1_0도입되었습니다.

텐서 제약 조건

  • 입력 및 출력 텐서 데이터 형식은 항상 정수 데이터 형식을 출력하는 ARGMAX 및 ARGMIN 함수를 사용하는 경우를 제외하고 일치해야 합니다.
  • 출력 크기는 1이어야 하는 축소된 축을 제외하고 입력 크기와 동일해야 합니다.

함수에 따른 텐서 지원

ARGMIN 및 ARGMAX

DML_FEATURE_LEVEL_4_1 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1-8 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor 출력 1-8 INT64, INT32, UINT64, UINT32

DML_FEATURE_LEVEL_3_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1-8 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor 출력 1-8 INT64, INT32, UINT64, UINT32

DML_FEATURE_LEVEL_2_1 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor 출력 4 Uint32

DML_FEATURE_LEVEL_1_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 Uint32

AVERAGE, L2, LOG_SUM 및 LOG_SUM_EXP

DML_FEATURE_LEVEL_3_0 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~8개 FLOAT32, FLOAT16
OutputTensor 출력 1~8개 FLOAT32, FLOAT16
DML_FEATURE_LEVEL_1_0 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 FLOAT32, FLOAT16

L1 및 SUM_SQUARE

DML_FEATURE_LEVEL_5_0 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~8개 FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32
OutputTensor 출력 1~8개 FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32

DML_FEATURE_LEVEL_3_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~8개 FLOAT32, FLOAT16
OutputTensor 출력 1~8개 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_1_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 FLOAT32, FLOAT16

MIN 및 MAX

DML_FEATURE_LEVEL_5_0 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~8개 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor 출력 1~8개 FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_3_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1~8개 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor 출력 1~8개 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_1 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16, INT32, UINT32
OutputTensor 출력 4 FLOAT32, FLOAT16, INT32, UINT32

DML_FEATURE_LEVEL_1_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 FLOAT32, FLOAT16

MULTIPLY 및 SUM

DML_FEATURE_LEVEL_5_0 이상
텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1-8 FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32
OutputTensor 출력 1-8 FLOAT32, FLOAT16, INT64, INT32, UINT64, UINT32

DML_FEATURE_LEVEL_3_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 1-8 FLOAT32, FLOAT16, INT32, UINT32
OutputTensor 출력 1-8 FLOAT32, FLOAT16, INT32, UINT32

DML_FEATURE_LEVEL_2_1 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16, INT32, UINT32
OutputTensor 출력 4 FLOAT32, FLOAT16, INT32, UINT32

DML_FEATURE_LEVEL_1_0 이상

텐서 종류 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 4 FLOAT32, FLOAT16
OutputTensor 출력 4 FLOAT32, FLOAT16

요구 사항

요구 사항
헤더 directml.h

추가 정보

기능 수준 3_0에서는 DML_REDUCE_FUNCTION_ARGMAXDML_REDUCE_FUNCTION_ARGMIN 사용할 수 있는 기능을 대체하는 이러한 독립 실행형 연산자를 도입했습니다.