次の方法で共有


DML_SLICE_GRAD_OPERATOR_DESC構造体 (directml.h)

Slice のバックプロパティ グラデーションを計算します ( 「DML_SLICE1_OPERATOR_DESC」を参照)。

DML_SLICE1_OPERATOR_DESCは入力テンソルのサブ領域を抽出することを思い出してください。 等価のDML_SLICE1_OPERATOR_DESC出力と同じサイズの InputGradientTensor を指定すると、この演算子は、DML_SLICE1_OPERATOR_DESC入力と同じサイズの OutputGradientTensor を生成します。 スライスされた要素は出力に伝達され、他のすべての要素は 0 に設定されます。

たとえば、テンソルから次の要素を抽出する DML_SLICE1_OPERATOR_DESC を考えてみましょう。

InputTensor            OutputTensor
[[a, b, c, d],
 [e, f, g, h],   Slice   [[a, c],
 [i, j, k, l],    -->     [i, k]]
 [m, n, o, p]]

上記の例と同じ InputWindowOffsets/サイズ/ストライド が指定されている場合、この演算子は次の変換を実行します。

InputGradientTensor       OutputGradientTensor
                             [[a, 0, c, 0],
      [[a, c],   SliceGrad    [0, 0, 0, 0],
       [i, k]]      -->       [i, 0, k, 0],
                              [0, 0, 0, 0]]

構文

struct DML_SLICE_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  UINT                  DimensionCount;
  const UINT            *InputWindowOffsets;
  const UINT            *InputWindowSizes;
  const INT             *InputWindowStrides;
};

メンバー

InputGradientTensor

型: const DML_TENSOR_DESC*

受信グラデーションテンソル。 これは通常、前のレイヤーのバックプロパティの出力から取得されます。 通常、このテンソルは、前方パスの対応するDML_SLICE1_OPERATOR_DESC出力と同じサイズになります。

OutputGradientTensor

型: const DML_TENSOR_DESC*

バックプロパティのグラデーションを含む出力テンソル。 通常、このテンソルは、前方パスの対応するDML_SLICE1_OPERATOR_DESC入力と同じサイズになります。

DimensionCount

型: UINT

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

InputWindowOffsets

型: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCの InputWindowOffsets」を参照してください。

InputWindowSizes

型: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCの InputWindowSizes参照してください。

InputWindowStrides

型: _Field_size_(DimensionCount) const UINT*

DML_SLICE1_OPERATOR_DESCの InputWindowStrides」を参照してください。

DML_SLICE1_OPERATOR_DESCとは異なり、この演算子には 0 以外のストライドが必要であることに注意してください。 これは、ストライドがゼロの場合、入力要素を各出力要素にマップする必要があるため、バックプロパティを実行できないためです。 DML_SLICE1_OPERATOR_DESCと同様に、負のストライドでは、入力ウィンドウの方向がその軸に沿って反転します。

可用性

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

テンソル制約

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

Tensor のサポート

DML_FEATURE_LEVEL_4_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputGradientTensor 入力 1 から 8 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8
OutputGradientTensor 出力 1 から 8 FLOAT64、FLOAT32、FLOAT16、INT64、INT32、INT16、INT8、UINT64、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_3_1以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputGradientTensor 入力 1 から 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputGradientTensor 出力 1 から 8 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

DML_FEATURE_LEVEL_3_0以上

テンソル 種類 サポートされているディメンション数 サポートされるデータ型
InputGradientTensor 入力 4 から 5 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8
OutputGradientTensor 出力 4 から 5 FLOAT32、FLOAT16、INT32、INT16、INT8、UINT32、UINT16、UINT8

要件

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