DML_RESAMPLE_GRAD1_OPERATOR_DESC 構造体 (directml.h)
DML_RESAMPLE2_OPERATOR_DESC の逆伝搬法勾配を計算します。
DML_RESAMPLE2_OPERATOR_DESC は、ニアレストネイバー サンプリングまたはバイリニア補間を使用して、入力テンソルの任意の次元を再スケーリングします。 同等の DML_RESAMPLE2_OPERATOR_DESC の出力と同じサイズの InputGradientTensor を指定すると、この演算子は、DML_RESAMPLE2_OPERATOR_DESC の入力と同じサイズの OutputGradientTensor を生成します。
たとえば、幅が 1.5 倍、高さが 0.5 倍の最近傍スケーリングを実行する DML_RESAMPLE2_OPERATOR_DESCを考えてください。
InputTensor OutputTensor
[[1, 2], Resample [1, 1, 2]
[3, 4]] -->
入力テンソルの 0 番目の要素 (値 1) が出力内の 2 つの要素にどのように影響するかに注目してください。1 番目の要素 (値 2) は、出力内の 1 つの要素に影響します。2 番目および 3 番目の要素 (値 3 と 4) は、出力のどの要素にも影響しません。
対応する DML_RESAMPLE_GRAD1_OPERATOR_DESC では、次の処理が実行されます。
InputGradientTensor OutputGradientTensor
[4, 5, 6] ResampleGrad [[9, 6],
--> [0, 0]]
OutputGradientTensor の値は、元の DML_RESAMPLE2_OPERATOR_DESC 演算子中に OutputTensor に対するその要素の重み付けされたコントリビューションを表していることに注意してください。
重要
この API は、DirectML スタンドアロン再頒布可能パッケージの一部として使用できます (Microsoft.AI.DirectML バージョン 1.9 以降を参照してください)。 DirectML バージョン履歴も参照してください。
構文
struct DML_RESAMPLE_GRAD1_OPERATOR_DESC
{
const DML_TENSOR_DESC* InputGradientTensor;
const DML_TENSOR_DESC* OutputGradientTensor;
DML_INTERPOLATION_MODE InterpolationMode;
DML_AXIS_DIRECTION RoundingDirection;
UINT DimensionCount;
_Field_size_(DimensionCount) const FLOAT* Scales;
_Field_size_(DimensionCount) const FLOAT* InputPixelOffsets;
_Field_size_(DimensionCount) const FLOAT* OutputPixelOffsets;
};
メンバー
InputGradientTensor
型: const DML_TENSOR_DESC*
着信勾配テンソル。 これは通常、前のレイヤーの逆伝搬法の出力から取得されます。 通常、このテンソルは、前方パス内の対応するDML_RESAMPLE2_OPERATOR_DESC の出力と同じサイズになります。
OutputGradientTensor
型: const DML_TENSOR_DESC*
逆伝搬された勾配を含む出力テンソル。 通常、このテンソルは、前方パス内の対応するDML_RESAMPLE2_OPERATOR_DESC の入力と同じサイズになります。
InterpolationMode
「DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode」を参照してください。
RoundingDirection
「DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection」を参照してください。
DimensionCount
型: UINT
Scale、InputPixelOffsets、および OutputPixelOffsets 配列内の要素の数。 この値は、InputGradientTensor と OutputGradientTensor で指定された DimensionCount と等しい必要があります。
Scales
型: _Field_size_(DimensionCount) const FLOAT*
「DML_RESAMPLE2_OPERATOR_DESC::Scales」を参照してください。
InputPixelOffsets
型: _Field_size_(DimensionCount) const FLOAT*
「DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets」を参照してください。
OutputPixelOffsets
型: _Field_size_(DimensionCount) const FLOAT*
「DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets」を参照してください。
解説
この演算子は、InterpolationMode が DML_INTERPOLATION_MODE_LINEAR に設定されている場合、または InterpolationMode が DML_INTERPOLATION_MODE_NEAREST_NEIGHBOR に設定され、RoundingDirection が DML_AXIS_DIRECTION_DECREASING に設定され、OutputPixelOffsets が追加で -0.5 調整された場合の DML_RESAMPLE_GRAD_OPERATOR_DESC と同じです。
可用性
この演算子は、DML_FEATURE_LEVEL_5_1 で導入されました。
Tensor 制約
InputGradientTensor と OutputGradientTensor には、同じ DataType と DimensionCount が必要です。
Tensor のサポート
Tensor | 種類 | サポートされているディメンション数 | サポートされるデータ型 |
---|---|---|---|
InputGradientTensor | 入力 | 1 から 4 | FLOAT32、FLOAT16 |
OutputGradientTensor | 出力 | 1 から 4 | FLOAT32、FLOAT16 |
要件
ヘッダー | directml.h |