다음을 통해 공유


DML_SLICE_GRAD_OPERATOR_DESC 구조체(directml.h)

조각에 대한 백프로포지션 그라데이션을 계산합니다( DML_SLICE1_OPERATOR_DESC 참조).

DML_SLICE1_OPERATOR_DESC 입력 텐서의 하위 리소스를 추출합니다. 동일한 DML_SLICE1_OPERATOR_DESC출력과 크기가 같은 InputGradientTensor가 있는 경우 이 연산자는 DML_SLICE1_OPERATOR_DESC입력과 동일한 크기의 OutputGradientTensor를 생성합니다. 조각화된 요소는 출력으로 전파되고 다른 모든 요소는 0으로 설정됩니다.

예를 들어 텐서에서 다음 요소를 추출하는 DML_SLICE1_OPERATOR_DESC 고려해 보세요.

InputTensor            OutputTensor
[[a, b, c, d],
 [e, f, g, h],   Slice   [[a, c],
 [i, j, k, l],    -->     [i, k]]
 [m, n, o, p]]

위의 예제와 동일한 InputWindowOffsets/Sizes Strides/를 제공한 경우 이 연산자는 다음 변환을 수행합니다.

InputGradientTensor       OutputGradientTensor
                             [[a, 0, c, 0],
      [[a, c],   SliceGrad    [0, 0, 0, 0],
       [i, k]]      -->       [i, 0, k, 0],
                              [0, 0, 0, 0]]

구문

struct DML_SLICE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *InputWindowOffsets;
  const UINT            *InputWindowSizes;
  const INT             *InputWindowStrides;
};

멤버

InputGradientTensor

형식: const DML_TENSOR_DESC*

들어오는 그라데이션 텐서입니다. 이는 일반적으로 이전 계층의 백프로포지션 출력에서 가져옵니다. 일반적으로 이 텐서의 크기는 전달 패스에 있는 해당 DML_SLICE1_OPERATOR_DESC출력과 같습니다.

OutputGradientTensor

형식: const DML_TENSOR_DESC*

백프로페이팅된 그라데이션을 포함하는 출력 텐서입니다. 일반적으로 이 텐서의 크기는 전달 패스에 있는 해당 DML_SLICE1_OPERATOR_DESC입력과 같습니다.

DimensionCount

형식: UINT

InputWindowOffsets, InputWindowSizesInputWindowStrides 배열의 요소 수입니다. 이 값은 InputGradientTensorOutputGradientTensor에 제공된 DimensionCount와 같아야 합니다.

InputWindowOffsets

형식: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCInputWindowOffsets를 참조하세요.

InputWindowSizes

형식: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCInputWindowSizes를 참조하세요.

InputWindowStrides

형식: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCInputWindowStrides를 참조하세요.

DML_SLICE1_OPERATOR_DESC 달리 이 연산자는 0이 아닌 보폭이 필요합니다. 보폭이 0이면 각 출력 요소에 매핑해야 하는 입력 요소가 모호하므로 백프로포지션을 수행할 수 없기 때문입니다. DML_SLICE1_OPERATOR_DESC 마찬가지로 음수 보폭은 해당 축을 따라 입력 창 방향을 대칭 이동합니다.

가용성

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

텐서 제약 조건

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

텐서 지원

DML_FEATURE_LEVEL_4_1 이상

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

DML_FEATURE_LEVEL_3_1 이상

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

DML_FEATURE_LEVEL_3_0 이상

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
머리글 directml.h