다음을 통해 공유


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입니다. 텐서의 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]]]]

지금까지 모두 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