次の方法で共有


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*

フィルター 0 ポイント データを含む省略可能なテンソル。 FilterZeroPointTensor の予想されるディメンションは、{ 1, 1, 1, 1 }テンソル単位の量子化が必要な場合、または{ 1, OutputChannelCount, 1, 1 }チャネル単位の量子化が必要な場合です。

OutputTensor

型: const DML_TENSOR_DESC*

結果を書き込むテンソル。 OutputTensor の予想されるディメンションは です{ BatchCount, OutputChannelCount, OutputHeight, OutputWidth }

DimensionCount

型: UINT

畳み込み操作の空間ディメンションの数。 空間ディメンションは、畳み込み FilterTensor の下位ディメンションです。 この値は、 StridesDilationsStartPaddingおよび 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導入されました。

テンソル制約

  • FilterZeroPointTensorInputZeroPointTensor には、同じ DimensionCount が必要です。
  • FilterTensorInputTensorおよび OutputTensor には、同じ DimensionCount が必要です。
  • InputTensorInputZeroPointTensorDataType は同じである必要があります。
  • FilterTensorFilterZeroPointTensorDataType は同じである必要があります。

Tensor のサポート

DML_FEATURE_LEVEL_4_0以上

テンソル 種類 Dimensions サポートされているディメンション数 サポートされるデータ型
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以上

テンソル 種類 Dimensions サポートされているディメンション数 サポートされるデータ型
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
Header directml.h