다음을 통해 공유


DML_DEPTH_TO_SPACE1_OPERATOR_DESC 구조체(directml.h)

깊이에서 공간 데이터 블록으로 데이터를 다시 정렬(permutes)합니다. 연산자는 깊이 차원의 값이 공간 블록에서 높이 및 너비 차원으로 이동하는 입력 텐서의 복사본을 출력합니다.

이것은 DML_SPACE_TO_DEPTH1_OPERATOR_DESC 역 변환입니다.

구문

struct DML_DEPTH_TO_SPACE1_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *OutputTensor;
  UINT                  BlockSize;
  DML_DEPTH_SPACE_ORDER Order;
};

멤버

InputTensor

형식: const DML_TENSOR_DESC*

읽을 텐서입니다. 입력 텐서의 차원은 입니다 { BatchCount, InputChannelCount, InputHeight, InputWidth }.

OutputTensor

형식: const DML_TENSOR_DESC*

결과를 쓸 텐서입니다. 출력 텐서의 차원은 입니다 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth }. 여기서:

  • OutputChannelCount는 InputChannelCount /(BlockSize * BlockSize)로 계산됩니다.
  • OutputHeight는 InputHeight *로 계산됩니다. BlockSize
  • OutputWidth는 InputWidth *로 계산됩니다. BlockSize

BlockSize

형식: UINT

이동된 블록의 너비 및 높이입니다.

Order

형식: DML_DEPTH_SPACE_ORDER

DML_DEPTH_SPACE_ORDER 참조하세요.

예제

이 섹션의 예제에서는 모두 아래 입력을 사용합니다.

InputTensor: (Sizes:{1, 8, 2, 3}, DataType:UINT32)
[[[[0,   1,  2],
   [3,   4,  5]],
  [[9,  10, 11],
   [12, 13, 14]],
  [[18, 19, 20],
   [21, 22, 23]],
  [[27, 28, 29],
   [30, 31, 32]],
  [[36, 37, 38],
   [39, 40, 41]],
  [[45, 46, 47],
   [48, 49, 50]],
  [[54, 55, 56],
   [57, 58, 59]],
  [[63, 64, 65],
   [66, 67, 68]]]]

예제 1. 깊이 열 행 순서

BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
 [[[[ 0, 18,  1, 19,  2, 20],
    [36, 54, 37, 55, 38, 56],
    [ 3, 21,  4, 22,  5, 23],
    [39, 57, 40, 58, 41, 59]],
   [[ 9, 27, 10, 28, 11, 29],
    [45, 63, 46, 64, 47, 65],
    [12, 30, 13, 31, 14, 32],
    [48, 66, 49, 67, 50, 68]]]]

예제 2. 열 행 깊이 순서

BlockSize: 2
Order: DML_DEPTH_SPACE_ORDER_COLUMN_ROW_DEPTH
OutputTensor: (Sizes:{1, 2, 4, 6}, DataType:UINT32)
[[[[ 0,  9,  1, 10,  2, 11],
   [18, 27, 19, 28, 20, 29],
   [ 3, 12,  4, 13,  5, 14],
   [21, 30, 22, 31, 23, 32]],
  [[36, 45, 37, 46, 38, 47],
   [54, 63, 55, 64, 56, 65],
   [39, 48, 40, 49, 41, 50],
   [57, 66, 58, 67, 59, 68]]]]

설명

OrderDML_DEPTH_SPACE_ORDER_DEPTH_COLUMN_ROW 설정되면 DML_DEPTH_TO_SPACE1_OPERATOR_DESCDML_DEPTH_TO_SPACE_OPERATOR_DESC 동일합니다.

가용성

이 연산자는 에서 DML_FEATURE_LEVEL_2_1도입되었습니다.

텐서 제약 조건

InputTensorOutputTensor 에는 동일한 DataType이 있어야 합니다.

텐서 지원

DML_FEATURE_LEVEL_5_0 이상

텐서 종류 차원 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8
OutputTensor 출력 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 FLOAT64, FLOAT32, FLOAT16, INT64, INT32, INT16, INT8, UINT64, UINT32, UINT16, UINT8

DML_FEATURE_LEVEL_2_1 이상

텐서 종류 차원 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 { BatchCount, InputChannelCount, InputHeight, InputWidth } 4 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8
OutputTensor 출력 { BatchCount, OutputChannelCount, OutputHeight, OutputWidth } 4 FLOAT32, FLOAT16, INT32, INT16, INT8, UINT32, UINT16, UINT8

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 빌드 20348
지원되는 최소 서버 Windows 10 빌드 20348
머리글 directml.h

추가 정보