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 的较低维度。 此值还确定 StridesDilationsStartPaddingEndPadding 数组的大小。 仅支持值 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引入的。

张量约束

  • FilterZeroPointTensorInputZeroPointTensor 必须具有相同的 DimensionCount
  • FilterTensorInputTensorOutputTensor 必须具有相同的 DimensionCount
  • InputTensorInputZeroPointTensor 必须具有相同 的 DataType
  • FilterTensorFilterZeroPointTensor 必须具有相同的 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