DML_CONVOLUTION_INTEGER_OPERATOR_DESC結構 (directml.h)
使用 InputTensor 執行 FilterTensor 的卷積。 這個運算子會對整數數據執行正向卷積。 選擇性的零點張量也可以用來從輸入和篩選張量中減去零點值。
語法
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*
選擇性張量,其中包含輸入零點數據。 InputZeroPointTensor 的預期維度為 { 1, 1, 1, 1 }
。
FilterTensor
類型: const DML_TENSOR_DESC*
包含篩選數據的張量。 FilterTensor 的預期維度為 { FilterBatchCount, FilterChannelCount, FilterHeight, FilterWidth }
。
FilterZeroPointTensor
類型:_Maybenull_ const DML_TENSOR_DESC*
選擇性張量,其中包含篩選零點數據。 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*
陣列,包含卷積運算的dilations。 Dilation 是套用至篩選核心元素的步進。 這會產生模擬較大篩選核心的效果,方法是將內部篩選核心元素填補為零。
StartPadding
類型:_Field_size_ (DimensionCount) const UINT*
數位,包含要套用至篩選條件之每個空間維度開頭的填補值,以及卷積運算的輸入張量。
EndPadding
類型:_Field_size_ (DimensionCount) const UINT*
數位,包含要套用至篩選條件之每個空間維度結尾的填補值,以及捲積作業的輸入張量。
GroupCount
類型: UINT
要分割卷積作業的群組數目。 GroupCount 可用來藉由將 GroupCount 設定為等於輸入通道計數來達到深度卷積。 這會將卷積分成每個輸入通道的個別卷積。
可用性
這個運算子是在 中 DML_FEATURE_LEVEL_2_1
引進。
Tensor 條件約束
- FilterZeroPointTensor 和 InputZeroPointTensor 必須具有相同的 DimensionCount。
- FilterTensor、 InputTensor 和 OutputTensor 必須具有相同的 DimensionCount。
- InputTensor 和 InputZeroPointTensor 必須具有相同 的 DataType。
- FilterTensor 和 FilterZeroPointTensor 必須具有相同 的 DataType。
Tensor 支援
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 |