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
InputWindowOffsets、InputWindowSizes、および InputWindowStrides 配列内の要素の数。 この値は、InputGradientTensor と OutputGradientTensor で指定された 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
導入されました。
テンソル制約
InputGradientTensor と OutputGradientTensor には、同じ DataType と DimensionCount が必要です。
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 |