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 の場合は

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 次元配列として扱われます。 スライディング ウィンドウ内の複数の要素が同じ値を持つ場合、後の等しい値は無視され、インデックスは最初に検出された値を指します。 OutputTensor と OutputIndicesTensor のテンソル サイズは同じです。

DimensionCount

型: UINT

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

Strides

型: _Field_size_(DimensionCount) const UINT*

DimensionCount が 2 に設定されている場合に { Height, Width } サイズのスライディング ウィンドウ ディメンションのストライド。3 に設定すると { Depth, Height, Width }

WindowSize

型: _Field_size_(DimensionCount) const UINT*

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

StartPadding

型: _Field_size_(DimensionCount) const UINT*

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

EndPadding

型: _Field_size_(DimensionCount) const UINT*

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

Dilations

型: _Field_size_(DimensionCount) const UINT*

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

備考

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

可用性

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

Tensor 制約

  • InputTensor、OutputIndicesTensor、および OutputTensor は、同じ DimensionCountを持つ必要があります。
  • InputTensor と OutputTensor は、同じ DataTypeを持つ必要があります。

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)
ヘッダー directml.h