次の方法で共有


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_INTERPOLATION_MODE

「DML_RESAMPLE2_OPERATOR_DESC::InterpolationMode」を参照してください。

RoundingDirection

型: DML_AXIS_DIRECTION

「DML_RESAMPLE2_OPERATOR_DESC::RoundingDirection」を参照してください。

DimensionCount

型: UINT

ScaleInputPixelOffsets、および OutputPixelOffsets 配列内の要素の数。 この値は、InputGradientTensorOutputGradientTensor で指定された DimensionCount と等しい必要があります。

Scales

型: _Field_size_(DimensionCount) const FLOAT*

「DML_RESAMPLE2_OPERATOR_DESC::Scale」を参照してください。

InputPixelOffsets

型: _Field_size_(DimensionCount) const FLOAT*

「DML_RESAMPLE2_OPERATOR_DESC::InputPixelOffsets」を参照してください。

OutputPixelOffsets

型: _Field_size_(DimensionCount) const FLOAT*

「DML_RESAMPLE2_OPERATOR_DESC::OutputPixelOffsets」を参照してください。

注釈

この演算子は、InterpolationModeDML_INTERPOLATION_MODE_LINEAR に設定されている場合のDML_RESAMPLE_GRAD_OPERATOR_DESCと同じです。または、InterpolationModeDML_INTERPOLATION_MODE_NEAREST_NEIGHBOR に設定され、RoundingDirectionDML_AXIS_DIRECTION_DECREASING に設定され、OutputPixelOffsets が追加の -0.5 に調整される場合。

可用性

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

Tensor 制約

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

Tensor のサポート

テンソル 優しい サポートされているディメンション数 サポートされているデータ型
インプットグラディエントテンソル インプット 1 ~ 4 FLOAT32、FLOAT16
OutputGradientTensor (英語) アウトプット 1 ~ 4 FLOAT32、FLOAT16

要求事項

   
ヘッダ directml.h