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, InputWindowSizes 및 InputWindowStrides 배열의 요소 수입니다. 이 값은 InputGradientTensor 및 OutputGradientTensor에 제공된 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
도입되었습니다.
텐서 제약 조건
InputGradientTensor 및 OutputGradientTensor 에는 동일한 DataType 및 DimensionCount가 있어야 합니다.
텐서 지원
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 |