DML_DIAGONAL_MATRIX_OPERATOR_DESC 구조체(directml.h)
주 대각선에 있는 ID(또는 기타 명시적 값)와 다른 모든 곳에서 0이 있는 ID와 유사한 행렬을 생성합니다. 대각선은 오프셋을 통해 이동할 수 있습니다. 여기서 OutputTensor[i, i + Offset]
= Value는 0보다 큰 Offset 인수가 모든 값을 오른쪽으로 이동하고 0보다 작을 경우 왼쪽으로 이동합니다. 이 생성기 연산자는 모델이 큰 상수 텐서를 저장하지 않도록 하는 데 유용합니다. 마지막 두 개 이전의 선행 차원은 일괄 처리 수로 처리됩니다. 즉, 텐서가 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
양수 오프셋이 쓰기 값을 오른쪽/위로 이동하고(출력을 왼쪽 위가 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]]]]
지금까지 모두 0이 되도록 대각선으로 이동합니다.
Offset: -3
Value: 1.0
OutputTensor: (Sizes:{1,1,3,2}, DataType:FLOAT32)
[[[[0, 0],
[0, 0],
[0, 0]]]]
설명
가용성
이 연산자는 에서 DML_FEATURE_LEVEL_2_0
도입되었습니다.
텐서 지원
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) |
머리글 | directml.h |