DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC 구조체(directml.h)
일괄 처리 정규화를 위한 백프로포지션 그라데이션을 계산합니다. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC 별도의 출력 설명에 자세히 설명된 여러 계산을 수행합니다.
OutputScaleGradientTensor 및 OutputBiasGradientTensor는 MeanTensor, ScaleTensor 및 VarianceTensor 크기가 같은 차 원 집합의 합계를 사용하여 계산됩니다.
구문
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, ScaleTensor 및 VarianceTensor 는 동일한 DataType 및 DimensionCount를 가져야 합니다.
- MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensor 및 VarianceTensor 의 크기는 같아야 합니다.
- InputGradientTensor, InputTensor 및 OutputGradientTensor 의 크기는 같아야 합니다.
텐서 지원
텐서 | 종류 | 차원 | 지원되는 차원 수 | 지원되는 데이터 형식 |
---|---|---|---|---|
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 |