다음을 통해 공유


DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC 구조체(directml.h)

일괄 처리 정규화를 위한 백프로포지션 그라데이션을 계산합니다. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC 별도의 출력 설명에 자세히 설명된 여러 계산을 수행합니다.

OutputScaleGradientTensorOutputBiasGradientTensorMeanTensor, ScaleTensorVarianceTensor 크기가 같은 차 원 집합의 합계를 사용하여 계산됩니다.

구문

struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC {
  const DML_TENSOR_DESC *InputTensor;
  const DML_TENSOR_DESC *InputGradientTensor;
  const DML_TENSOR_DESC *MeanTensor;
  const DML_TENSOR_DESC *VarianceTensor;
  const DML_TENSOR_DESC *ScaleTensor;
  const DML_TENSOR_DESC *OutputGradientTensor;
  const DML_TENSOR_DESC *OutputScaleGradientTensor;
  const DML_TENSOR_DESC *OutputBiasGradientTensor;
  FLOAT                 Epsilon;
};

멤버

InputTensor

형식: const DML_TENSOR_DESC*

입력 데이터를 포함하는 텐서입니다. 일반적으로 전달 패스에서 DML_BATCH_NORMALIZATION_OPERATOR_DESCInputTensor로 제공된 것과 동일한 텐서입니다.

InputGradientTensor

형식: const DML_TENSOR_DESC*

들어오는 그라데이션 텐서입니다. 이는 일반적으로 이전 계층의 백프로포지션 출력에서 가져옵니다.

MeanTensor

형식: const DML_TENSOR_DESC*

평균 데이터를 포함하는 텐서입니다. 일반적으로 전달 패스에서 DML_BATCH_NORMALIZATION_OPERATOR_DESC위해 MeanTensor로 제공된 것과 동일한 텐서입니다.

VarianceTensor

형식: const DML_TENSOR_DESC*

분산 데이터를 포함하는 텐서입니다. 일반적으로 전달 패스에서 DML_OPERATOR_BATCH_NORMALIZATION위해 VarianceTensor로 제공된 것과 동일한 텐서입니다.

ScaleTensor

형식: const DML_TENSOR_DESC*

크기 조정 데이터를 포함하는 텐서입니다. 일반적으로 전달 패스에서 DML_BATCH_NORMALIZATION_OPERATOR_DESCScaleTensor로 제공된 것과 동일한 텐서입니다.

OutputGradientTensor

형식: const DML_TENSOR_DESC*

입력의 모든 해당 값에 대해 입니다 OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon)).

OutputScaleGradientTensor

형식: const DML_TENSOR_DESC*

다음 계산이 수행되거나 입력의 모든 해당 값이 수행됩니다.

OutputScaleGradient = sum(InputGradient * (Input - Mean) / sqrt(Variance + Epsilon))

OutputBiasGradientTensor

형식: const DML_TENSOR_DESC*

다음 계산이 수행되거나 입력의 모든 해당 값이 수행됩니다.

OutputBiasGradient = sum(InputGradient)

Epsilon

형식: FLOAT

0을 방지하기 위해 분산에 추가된 작은 값입니다.

설명

가용성

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

텐서 제약 조건

  • InputGradientTensor, InputTensor, MeanTensor, OutputBiasGradientTensor, OutputGradientTensor, OutputScaleGradientTensor, ScaleTensorVarianceTensor 는 동일한 DataTypeDimensionCount를 가져야 합니다.
  • MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensorVarianceTensor크기는 같아야 합니다.
  • InputGradientTensor, InputTensorOutputGradientTensor크기는 같아야 합니다.

텐서 지원

텐서 종류 차원 지원되는 차원 수 지원되는 데이터 형식
InputTensor 입력 { InputDimensions[] } 1-8 FLOAT32, FLOAT16
InputGradientTensor 입력 { InputDimensions[] } 1-8 FLOAT32, FLOAT16
MeanTensor 입력 { MeanDimensions[] } 1-8 FLOAT32, FLOAT16
VarianceTensor 입력 { MeanDimensions[] } 1-8 FLOAT32, FLOAT16
ScaleTensor 입력 { MeanDimensions[] } 1-8 FLOAT32, FLOAT16
OutputGradientTensor 출력 { InputDimensions[] } 1-8 FLOAT32, FLOAT16
OutputScaleGradientTensor 출력 { MeanDimensions[] } 1-8 FLOAT32, FLOAT16
OutputBiasGradientTensor 출력 { MeanDimensions[] } 1-8 FLOAT32, FLOAT16

요구 사항

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