入力テンソル上のスライディング ウィンドウ内の要素全体で Lp 正規化値を計算します。
構文
struct DML_LP_POOLING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *OutputTensor;
UINT DimensionCount;
const UINT *Strides;
const UINT *WindowSize;
const UINT *StartPadding;
const UINT *EndPadding;
UINT P;
};
メンバーズ
InputTensor
型: const DML_TENSOR_DESC*
サイズが 4D の場合は{ BatchCount, ChannelCount, Height, Width }、5D の場合は { BatchCount, ChannelCount, Depth, Height, Width } を持つ入力テンソル。
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;
}
DimensionCount
型: UINT
入力テンソル
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の入力テンソルの各空間次元の先頭に適用される埋め込み要素の数 { Height, Width }、3 に設定すると { Depth, Height, Width } されます。
EndPadding
型: _Field_size_(DimensionCount) const UINT*
InputTensorの入力テンソルの各空間次元の末尾に適用される埋め込み要素の数 { Height, Width }、3 に設定すると { Depth, Height, Width } されます。
P
型: UINT
Lp 正規化関数の P 変数の値 Y = (X1^P + X2^P + ... + Xn^P) ^ (1/P)。スライディング ウィンドウ内の各値を表 XnX1。 一般的なユース ケースでは、この値はそれぞれ L1 または L2 正規化を表す 1 または 2 に設定されます。
可用性
この演算子は、DML_FEATURE_LEVEL_1_0で導入されました。
Tensor 制約
Tensor のサポート
| テンソル | 種類 | サポートされているディメンション数 | サポートされているデータ型 |
|---|---|---|---|
| InputTensor | インプット | 4 ~ 5 | FLOAT32、FLOAT16 |
| OutputTensor | アウトプット | 4 ~ 5 | FLOAT32、FLOAT16 |
必要条件
| 要件 | 価値 |
|---|---|
| ヘッダー | directml.h |