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 |