Condividi tramite


DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC struttura (directml.h)

Calcola le sfumature backpropagation per la normalizzazione batch. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC esegue più calcoli, dettagliati nelle descrizioni di output separate.

OutputScaleGradientTensor e OutputBiasGradientTensor vengono calcolati usando somme nel set di dimensioni per cui MeanTensor, ScaleTensor e VarianceTensor sizesor sono uguali a uno.

Sintassi

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;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati di input. Questo è in genere lo stesso tensore fornito come InputTensor per DML_BATCH_NORMALIZATION_OPERATOR_DESC nel passaggio avanti.

InputGradientTensor

Tipo: const DML_TENSOR_DESC*

Tensore sfumatura in ingresso. Questo viene in genere ottenuto dall'output di backpropagation di un livello precedente.

MeanTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati medi. Questo è in genere lo stesso tensore fornito come MeanTensor per DML_BATCH_NORMALIZATION_OPERATOR_DESC nel passaggio avanti.

VarianceTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di varianza. Questo è in genere lo stesso tensore fornito come VarianceTensor per DML_OPERATOR_BATCH_NORMALIZATION nel passaggio avanti.

ScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati di scala. Questo è in genere lo stesso tensore fornito come ScaleTensor per DML_BATCH_NORMALIZATION_OPERATOR_DESC nel passaggio avanti.

OutputGradientTensor

Tipo: const DML_TENSOR_DESC*

Per ogni valore corrispondente negli input, OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon)).

OutputScaleGradientTensor

Tipo: const DML_TENSOR_DESC*

Il calcolo seguente viene eseguito o ogni valore corrispondente negli input.

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

OutputBiasGradientTensor

Tipo: const DML_TENSOR_DESC*

Il calcolo seguente viene eseguito o ogni valore corrispondente negli input.

OutputBiasGradient = sum(InputGradient)

Epsilon

Tipo: FLOAT

Valore ridotto aggiunto alla varianza per evitare zero.

Commenti

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_3_1.

Vincoli tensor

  • InputGradientTensor, InputTensor, MeanTensor, OutputBiasGradientTensor, OutputGradientTensor, OutputScaleGradientTensor, ScaleTensor e VarianceTensor deve avere lo stesso DataType e DimensionCount.
  • MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensor e VarianceTensor devono avere le stesse dimensioni.
  • InputGradientTensor, InputTensor e OutputGradientTensor devono avere le stesse dimensioni.

Supporto di Tensor

Tensore Tipo Dimensioni Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input { InputDimensions[] } da 1 a 8 FLOAT32, FLOAT16
InputGradientTensor Input { InputDimensions[] } da 1 a 8 FLOAT32, FLOAT16
MeanTensor Input { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16
VarianceTensor Input { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16
ScaleTensor Input { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16
OutputGradientTensor Output { InputDimensions[] } da 1 a 8 FLOAT32, FLOAT16
OutputScaleGradientTensor Output { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16
OutputBiasGradientTensor Output { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16

Requisiti

Requisito Valore
Client minimo supportato Windows Build 22000
Server minimo supportato Windows Build 22000
Intestazione directml.h