DML_CONVOLUTION_INTEGER_OPERATOR_DESC 구조체(directml.h)
InputTensor를 사용하여 FilterTensor의 구성을 수행합니다. 이 연산자는 정수 데이터에 대해 정방향 컨볼루션을 수행합니다. 선택적 0점 텐서를 사용하여 입력 및 필터 텐서에서 0포인트 값을 빼도 됩니다.
구문
struct DML_CONVOLUTION_INTEGER_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputZeroPointTensor;
const DML_TENSOR_DESC *FilterTensor;
const DML_TENSOR_DESC *FilterZeroPointTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *Dilations;
const UINT *StartPadding;
const UINT *EndPadding;
UINT GroupCount;
};
멤버
InputTensor
형식: const DML_TENSOR_DESC*
입력 데이터를 포함하는 텐서입니다. InputTensor의 예상 차원은 입니다{ BatchCount, InputChannelCount, InputHeight, InputWidth }
.
InputZeroPointTensor
형식: _Maybenull_ const DML_TENSOR_DESC*
입력 0점 데이터를 포함하는 선택적 텐서입니다. InputZeroPointTensor의 예상 차원은 입니다{ 1, 1, 1, 1 }
.
FilterTensor
형식: const DML_TENSOR_DESC*
필터 데이터를 포함하는 텐서입니다. FilterTensor의 예상 차원은 입니다{ FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }
.
FilterZeroPointTensor
형식: _Maybenull_ const DML_TENSOR_DESC*
필터 0포인트 데이터를 포함하는 선택적 텐서입니다. FilterZeroPointTensor의 예상 차원은 { 1, 1, 1, 1 }
텐서당 수량화가 필요한 경우 또는 { 1, OutputChannelCount, 1, 1 }
채널별 양자화가 필요한 경우 입니다.
OutputTensor
형식: const DML_TENSOR_DESC*
결과를 쓸 텐서입니다. OutputTensor의 예상 차원은 입니다{ BatchCount, OutputChannelCount, OutputHeight, OutputWidth }
.
DimensionCount
형식: UINT
나선형 작업의 공간 차원 수입니다. 공간 차원은 컨볼루션 FilterTensor의 하위 차원입니다. 이 값은 Strides, Dilations, StartPadding 및 EndPadding 배열의 크기도 결정합니다. 값 2만 지원됩니다.
Strides
형식: _Field_size_(DimensionCount) const UINT*
나선형 작업의 보폭을 포함하는 배열입니다. 이러한 보폭은 나선형 필터에 적용됩니다. DML_TENSOR_DESC 포함된 텐서 보폭과는 별개입니다.
Dilations
형식: _Field_size_(DimensionCount) const UINT*
컨볼루션 작업의 팽창을 포함하는 배열입니다. 확장은 필터 커널의 요소에 적용되는 보폭입니다. 내부 필터 커널 요소를 0으로 패딩하여 더 큰 필터 커널을 시뮬레이션하는 효과가 있습니다.
StartPadding
형식: _Field_size_(DimensionCount) const UINT*
필터의 각 공간 차원의 시작 부분에 적용할 안쪽 여백 값과 나선형 작업의 입력 텐서를 포함하는 배열입니다.
EndPadding
형식: _Field_size_(DimensionCount) const UINT*
필터의 각 공간 차원 끝에 적용할 안쪽 여백 값과 나선형 작업의 입력 텐서가 들어 있는 배열입니다.
GroupCount
형식: UINT
컨볼루션 작업을 나눌 그룹 수입니다. GroupCount는 GroupCount를 입력 채널 수와 동일하게 설정하여 깊이 수준 구성을 달성하는 데 사용할 수 있습니다. 이렇게 하면 컨볼루션을 입력 채널당 별도의 나선형으로 나눕니다.
가용성
이 연산자는 에서 DML_FEATURE_LEVEL_2_1
도입되었습니다.
텐서 제약 조건
- FilterZeroPointTensor 및 InputZeroPointTensor 에는 동일한 DimensionCount가 있어야 합니다.
- FilterTensor, InputTensor 및 OutputTensor 에는 동일한 DimensionCount가 있어야 합니다.
- InputTensor 및 InputZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
- FilterTensor 및 FilterZeroPointTensor 에는 동일한 DataType이 있어야 합니다.
텐서 지원
DML_FEATURE_LEVEL_4_0 이상
텐서 | 종류 | 차원 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|---|
InputTensor | 입력 | { BatchCount, InputChannelCount, [InputHeight], InputWidth } | 3-4 | INT8, UINT8 |
InputZeroPointTensor | 선택적 입력 | { [1], [1], [1], 1 } | 1~4개 | INT8, UINT8 |
FilterTensor | 입력 | { FilterBatchCount, FilterChannelCount, [FilterHeight], FilterWidth } | 3-4 | INT8, UINT8 |
FilterZeroPointTensor | 선택적 입력 | { [1], FilterZeroPointChannelCount, [1], [1] } | 1~4개 | INT8, UINT8 |
OutputTensor | 출력 | { BatchCount, OutputChannelCount, [OutputHeight], OutputWidth } | 3-4 | INT32 |
DML_FEATURE_LEVEL_2_1 이상
텐서 | 종류 | 차원 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|---|
InputTensor | 입력 | { BatchCount, InputChannelCount, InputHeight, InputWidth } | 4 | INT8, UINT8 |
InputZeroPointTensor | 선택적 입력 | { 1, 1, 1, 1 } | 4 | INT8, UINT8 |
FilterTensor | 입력 | { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth } | 4 | INT8, UINT8 |
FilterZeroPointTensor | 선택적 입력 | { 1, FilterZeroPointChannelCount, 1, 1 } | 4 | INT8, UINT8 |
OutputTensor | 출력 | { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } | 4 | INT32 |
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 빌드 20348 |
지원되는 최소 서버 | Windows 10 빌드 20348 |
머리글 | directml.h |