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 の下位ディメンションです。 この値は、 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 は同じである必要があります。
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 |