DML_ROI_POOLING_OPERATOR_DESC 構造体 (directml.h)
入力テンソル全体で MaxPool 関数を実行します (対象領域または ROI に応じて)。 各出力要素について、入力内の対応する ROI の座標は、次の式によって計算されます。
InputTensor ({ BatchSize, ChannelCount, **height**, width }
) の 3 番目のディメンションへのインデックスを指定しますY
。
InputTensor ({ BatchSize, ChannelCount, height, **width** }
) の 4 番目のディメンションへのインデックスを指定しますX
。
x1 = round(RoiX1 * SpatialScale)
x2 = round(RoiX2 * SpatialScale)
y1 = round(RoiY1 * SpatialScale)
y2 = round(RoiY2 * SpatialScale)
RegionHeight = y2 - y1 + 1
RegionWidth = x2 - x1 + 1
StartY = (OutputIndices.Y * RegionHeight) / PooledSize.Height + y1
StartX = (OutputIndices.X * RegionWidth) / PooledSize.Width + x1
EndY = ((OutputIndices.Y + 1) * RegionHeight + PooledSize.Height - 1) / PooledSize.Height + y1
EndX = ((OutputIndices.X + 1) * RegionWidth + PooledSize.Width - 1) / PooledSize.Width + x1
計算された座標が範囲外の場合は、入力境界にクランプされます。
構文
struct DML_ROI_POOLING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ROITensor;
const DML_TENSOR_DESC *OutputTensor;
FLOAT SpatialScale;
DML_SIZE_2D PooledSize;
};
メンバー
InputTensor
型: const DML_TENSOR_DESC*
ディメンション { BatchCount, ChannelCount, InputHeight, InputWidth }
を持つ入力データを含むテンソル。
ROITensor
型: const DML_TENSOR_DESC*
関心領域 (ROI) データを含むテンソル。 の予想されるディメンション ROITensor
は { 1, 1, NumROIs, 5 }
であり、各 ROI のデータは です [BatchID, x1, y1, x2, y2]
。 x1、y1、x2、y2 は、各 ROI と x2 = x1、y2 >>= y1 の角の包括的な座標です。
OutputTensor
型: const DML_TENSOR_DESC*
出力データを含むテンソル。 OutputTensor の予想されるディメンションは です{ NumROIs, InputChannelCount, PooledSize.Height, PooledSize.Width }
。
SpatialScale
型: FLOAT
入力スケールからプール時に使用されるスケールに ROI 座標を変換するために使用される乗法空間スケールファクター。
PooledSize
種類: DML_SIZE_2D
ROI プールの出力サイズ (高さ、幅) は 、OutputTensor の最後の 2 次元と一致する必要があります。
可用性
この演算子は、 で DML_FEATURE_LEVEL_1_0
導入されました。
テンソル制約
InputTensor、 OutputTensor、 および ROITensor には、同じ DataType が必要です。
Tensor のサポート
テンソル | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputTensor | 入力 | 4 | FLOAT32、FLOAT16 |
ROITensor | 入力 | 4 | FLOAT32、FLOAT16 |
OutputTensor | 出力 | 4 | FLOAT32、FLOAT16 |
要件
Header | directml.h |