directml.h) (DML_CONVOLUTION_INTEGER_OPERATOR_DESC 结构
使用 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*
包含卷积运算的扩展的数组。 分割是应用于筛选器内核元素的步幅。 这可以通过用零填充内部筛选器内核元素来模拟更大的筛选器内核。
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 |