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 です。 テンソルの DataType が DML_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 |