次の方法で共有


DML_RESAMPLE1_OPERATOR_DESC構造体 (directml.h)

スケール ファクターを使用して変換先テンソル サイズを計算して、ソースから変換先テンソルに要素を再サンプリングします。 線形補間モードまたは最近隣補間モードを使用できます。 演算子は、2D だけでなく、複数の次元にわたる補間をサポートします。 そのため、同じ空間サイズを維持できますが、チャネル間またはバッチ間で補間できます。 入力座標と出力座標の関係は次のとおりです。

OutputTensorX = (InputTensorX + InputPixelOffset) * Scale + OutputPixelOffset

構文

struct DML_RESAMPLE1_OPERATOR_DESC {
  const DML_TENSOR_DESC  *InputTensor;
  const DML_TENSOR_DESC  *OutputTensor;
  DML_INTERPOLATION_MODE InterpolationMode;
  UINT                   DimensionCount;
  const FLOAT            *Scales;
  const FLOAT            *InputPixelOffsets;
  const FLOAT            *OutputPixelOffsets;
};

メンバー

InputTensor

型: const DML_TENSOR_DESC*

入力データを含むテンソル。

OutputTensor

型: const DML_TENSOR_DESC*

出力データを書き込むテンソル。

InterpolationMode

種類: DML_INTERPOLATION_MODE

このフィールドは、出力ピクセルの選択に使用される補間の種類を決定します。

  • DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR。 各出力要素の対応するピクセル中心に最も近い入力要素を選択する Nearest Neighbor アルゴリズムを使用します。

  • DML_INTERPOLATION_MODE_LINEAR線形補間アルゴリズムを使用します。このアルゴリズムは、ディメンションごとに最も近い 2 つの入力要素の加重平均を計算することによって出力要素を計算します。 リサンプリングは、最大 4 次元 (四辺形) でサポートされています。重み付け平均は、出力要素ごとに合計 16 個の入力要素で計算されます。

DimensionCount

型: UINT

ScaleInputPixelOffsets、OutputPixelOffsets が指す配列内の値の数。 この値は 、InputTensor と OutputTensor のディメンション数と一致 する必要があります。

Scales

型: _Field_size_(DimensionCount) const FLOAT*

入力の再サンプリング時に適用するスケール 。スケール > 1 はイメージをスケールアップし、 < 1 はそのディメンションのイメージをスケールダウンします。 スケールは、正確 OutputSize / InputSizeに である必要はありません。 スケーリング後の入力が出力バインドよりも大きい場合は、出力サイズにトリミングします。 一方、スケーリング後の入力が出力バインドよりも小さい場合、出力エッジはクランプされます。

InputPixelOffsets

型: _Field_size_(DimensionCount) const FLOAT*

再サンプリングの前に入力ピクセルに適用するオフセット。 この値が の場合、 0ピクセルの左上隅は中央ではなく使用されます。通常、期待される結果は得られません。 ピクセルの中心を使用してイメージを再サンプリングし、 DML_RESAMPLE_OPERATOR_DESCと同じ動作を取得するには、この値を にする 0.5必要があります。

OutputPixelOffsets

型: _Field_size_(DimensionCount) const FLOAT*

再サンプリング後に出力ピクセルに適用されるオフセット。 この値が の場合、 0ピクセルの左上隅は中央ではなく使用されます。通常、期待される結果は得られません。 ピクセルの中心を使用してイメージを再サンプリングし、 DML_RESAMPLE_OPERATOR_DESCと同じ動作を取得するには、この値を にする -0.5必要があります。

注釈

InputPixelOffsets が 0.5 に設定され、OutputPixelOffsets が -0.5 に設定されている場合、この演算子はDML_RESAMPLE_OPERATOR_DESCに相当します。

可用性

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

テンソル制約

InputTensorOutputTensor には、同じ DataTypeDimensionCount が必要です。

Tensor のサポート

DML_FEATURE_LEVEL_6_2以上

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

DML_FEATURE_LEVEL_5_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 1 から 4 FLOAT32、FLOAT16
OutputTensor 出力 1 から 4 FLOAT32、FLOAT16

DML_FEATURE_LEVEL_2_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputTensor 入力 4 FLOAT32、FLOAT16
OutputTensor 出力 4 FLOAT32、FLOAT16

要件

要件
サポートされている最小のクライアント Windows 10 ビルド 20348
サポートされている最小のサーバー Windows 10 ビルド 20348
Header directml.h