次の方法で共有


DML_DIAGONAL_MATRIX_OPERATOR_DESC 構造体 (directml.h)

主対角線上に 1 つ (またはその他の明示的な値) を持つ ID のような行列を生成し、それ以外の場所ではゼロを生成します。 対角線は (Offset を使用して) OutputTensor[i, i + Offset] = シフトされる場合があります。引数 Value は、引数 Offset が 0 より大きい場合は、すべての値を右にシフトし、0 未満の場合は左にシフトします。 このジェネレーター演算子は、モデルが大きな定数テンソルを格納しないようにするのに役立ちます。 最後の 2 つより前の次元はバッチ数として扱われます。つまり、テンソルは 2D 行列のスタックとして扱われます。

この演算子は、次の擬似コードを実行します。

for each coordinate in OutputTensor
    OutputTensor[coordinate] = if (coordinate.y + Offset == coordinate.x) then Value else 0
endfor

構文

struct DML_DIAGONAL_MATRIX_OPERATOR_DESC {
  const DML_TENSOR_DESC *OutputTensor;
  INT                   Offset;
  FLOAT                 Value;
};

メンバー

OutputTensor

型: const DML_TENSOR_DESC*

結果を書き込むテンソル。 ディメンションは です { Batch1, Batch2, OutputHeight, OutputWidth }。 高さと幅は正方形である必要はありません。

Offset

型: INT

Value の対角線をシフトするオフセット。正のオフセットは、書き込まれた値を右/上にシフトし (出力を左上が 0,0 の行列として表示)、負のオフセットを左/下にシフトします。

Value

型: FLOAT

2D 対角線に沿って塗りつぶす値。 標準値は 1.0 です。 テンソルの DataTypeDML_TENSOR_DATA_TYPE_FLOAT16 または DML_TENSOR_DATA_TYPE_FLOAT32されていない場合、値が切り捨てられる可能性があることに注意してください (たとえば、10.6 は 10 になります)。

既定の ID マトリックス:

Offset: 0
Value: 1.0
OutputTensor: (Sizes:{1,1,3,3}, DataType:FLOAT32)
    [[[[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]]]]

右/上にシフトします。

Offset: 1
Value: 1.0
OutputTensor: (Sizes:{1,1,3,3}, DataType:FLOAT32)
    [[[[ 0, 1, 0],
       [ 0, 0, 1],
       [ 0, 0, 0]]]]

左/下にシフトします。

Offset: -1
Value: 1.0
OutputTensor: (Sizes:{1,1,3,2}, DataType:FLOAT32)
    [[[[0, 0],
       [1, 0],
       [0, 1]]]]

すべての行がゼロになるように、斜めの線をシフトします。

Offset: -3
Value: 1.0
OutputTensor: (Sizes:{1,1,3,2}, DataType:FLOAT32)
    [[[[0, 0],
       [0, 0],
       [0, 0]]]]

注釈

可用性

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

Tensor のサポート

DML_FEATURE_LEVEL_5_1以降

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

DML_FEATURE_LEVEL_4_0以上

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

DML_FEATURE_LEVEL_2_1以上

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

DML_FEATURE_LEVEL_2_0以上

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

要件

要件
サポートされている最小のクライアント Windows 10バージョン 2004 (10.0;ビルド 19041)
サポートされている最小のサーバー Windows Server バージョン 2004 (10.0;ビルド 19041)
Header directml.h