DML_MAX_POOLING2_OPERATOR_DESC 構造体 (directml.h)

入力テンソル上のスライディング ウィンドウ内の要素の最大値を計算し、必要に応じて選択した最大値のインデックスを返します。

構文

struct DML_MAX_POOLING2_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  const DML_TENSOR_DESC *OutputIndicesTensor;
  UINT                  DimensionCount;
  const UINT            *Strides;
  const UINT            *WindowSize;
  const UINT            *StartPadding;
  const UINT            *EndPadding;
  const UINT            *Dilations;
};

メンバー

InputTensor

型: const DML_TENSOR_DESC*

InputTensor.DimensionCount が 4 の場合、および InputTensor.DimensionCount が 5 の場合は、サイズ{ BatchCount, ChannelCount, Height, Width }入力テンソル{ BatchCount, ChannelCount, Depth, Height, Weight }

OutputTensor

型: const DML_TENSOR_DESC*

結果を書き込む出力テンソル。 出力テンソルのサイズは次のように計算できます。

OutputTensor->Sizes[0] = InputTensor->Sizes[0];
OutputTensor->Sizes[1] = InputTensor->Sizes[1];

for (UINT i = 0; i < DimensionCount; ++i) {
  UINT PaddedSize = InputTensor->Sizes[i + 2] + StartPadding[i] + EndPadding[i];
  OutputTensor->Sizes[i + 2] = (PaddedSize - WindowSizes[i]) / Strides[i] + 1;
}

OutputIndicesTensor

型: _Maybenull_ const DML_TENSOR_DESC*

OutputTensor で生成および格納される最大値の入力テン ソル InputTensor へのインデックスのオプション の出力テンソル。 これらのインデックス値は 0 から始まります。入力テンソルは連続する 1 次元配列として扱われます。 スライディング ウィンドウ内の複数の要素の値が同じである場合、それ以降の等しい値は無視され、インデックスは最初に検出された値を指します。 OutputTensorOutputIndicesTensor のサイズはどちらも同じです。

DimensionCount

型: UINT

入力テンソル InputTensor の空間ディメンションの数。これは、スライディング ウィンドウ WindowSize のディメンションの数にも対応します。 この値は、 StridesStartPaddingおよび EndPadding 配列のサイズも決定します。 InputTensor が 4D の場合は 2、5D テンソルの場合は 3 に設定する必要があります。

Strides

型: _Field_size_(DimensionCount) const UINT*

DimensionCount が 2 に設定されている場合、または { Depth, Height, Width } 3 に設定されている場合の、スライディング ウィンドウのサイズ{ Height, Width }のストライド。

WindowSize

型: _Field_size_(DimensionCount) const UINT*

DimensionCount が 2 に設定されている場合、または { Depth, Height, Width } 3 に設定されている場合の スライディング ウィンドウ{ Height, Width }のディメンション。

StartPadding

型: _Field_size_(DimensionCount) const UINT*

入力テンソル InputTensor の各空間ディメンションの先頭に適用されるパディング要素の数。 値は、DimensionCount{ Height, Width } 2 に設定されている場合、または { Depth, Height, Width } 3 に設定されている場合は です。

EndPadding

型: _Field_size_(DimensionCount) const UINT*

入力テンソル InputTensor の各空間ディメンションの末尾に適用されるパディング要素の数。 値は、DimensionCount{ Height, Width } 2 に設定されている場合、または { Depth, Height, Width } 3 に設定されている場合は です。

Dilations

型: _Field_size_(DimensionCount) const UINT*

入力テンソル InputTensor の各空間ディメンションの値。この値のすべての要素に対してスライディング ウィンドウ内の要素が選択されます。 値は、DimensionCount{ Height, Width } 2 に設定されている場合、または { Depth, Height, Width } 3 に設定されている場合は です。

解説

DML_MAX_POOLING2_OPERATOR_DESC は、以前のバージョン のDML_MAX_POOLING_OPERATOR1_DESC を追加の定数配列 Dilations に置き換えます。 2 つのバージョンは、4D 入力の場合は Dilations が に { 1,1 } 設定されている場合、または { 1,1,1 } 5D 入力機能の場合は同等です。

可用性

この演算子は、 で DML_FEATURE_LEVEL_2_1導入されました。

テンソル制約

  • InputTensorOutputIndicesTensorおよび OutputTensor は、同じ DimensionCount を持つ必要があります。
  • InputTensorOutputTensorDataType は同じである必要があります。

Tensor のサポート

DML_FEATURE_LEVEL_5_0 以降

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 4 から 5 FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputTensor 出力 4 から 5 FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputIndicesTensor 省略可能な出力 4 から 5 UINT64、UINT32

DML_FEATURE_LEVEL_3_0以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 4 から 5 FLOAT32、FLOAT16、INT8、UINT8
OutputTensor 出力 4 から 5 FLOAT32、FLOAT16、INT8、UINT8
OutputIndicesTensor 省略可能な出力 4 から 5 UINT32

DML_FEATURE_LEVEL_2_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 4 から 5 FLOAT32、FLOAT16
OutputTensor 出力 4 から 5 FLOAT32、FLOAT16
OutputIndicesTensor 省略可能な出力 4 から 5 UINT32

要件

   
サポートされている最小のクライアント Windows 10バージョン 2004 (10.0;ビルド 19041)
サポートされている最小のサーバー Windows Server バージョン 2004 (10.0;ビルド 19041)
Header directml.h