struttura DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC (directml.h)
Esegue una normalizzazione batch sull'input. Questo operatore esegue il calcolo seguente: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd)
.
Qualsiasi dimensione in ScaleTensor e BiasTensor può essere impostata su 1 e può essere trasmessa automaticamente in modo che corrisponda a InputTensor, ma in caso contrario deve essere uguale alla dimensione della dimensione corrispondente da InputTensor. MeanTensor e VarianceTensor vengono calcolati sull'input nel set di dimensioni per cui le dimensioni di ScaleTensor e BiasTensor sono uguali a una.
Sintassi
struct DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *FusedAddTensor;
const DML_TENSOR_DESC *OutputTensor;
const DML_TENSOR_DESC *OutputMeanTensor;
const DML_TENSOR_DESC *OutputVarianceTensor;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati di input.
ScaleTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati di scalabilità.
BiasTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati Bias.
FusedAddTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati aggiunti al risultato prima di FusedActivation, se presente.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensore in cui scrivere i risultati.
OutputMeanTensor
Tipo: const DML_TENSOR_DESC*
Tensore in cui scrivere la media dell'input.
OutputVarianceTensor
Tipo: const DML_TENSOR_DESC*
Tensore in cui scrivere la varianza dell'input.
Epsilon
Tipo: FLOAT
Valore di epsilon da utilizzare per evitare la divisione per zero.
FusedActivation
Tipo: _Maybenull_ const DML_OPERATOR_DESC*
Livello di attivazione fuso facoltativo da applicare dopo la normalizzazione. Per altre info, vedi Uso degli operatori fusibili per migliorare le prestazioni.
Commenti
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_4_1
.
Vincoli tensor
- BiasTensor, FusedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor e ScaleTensor devono avere lo stesso DataType e DimensionCount.
- BiasTensor, OutputMeanTensor, OutputVarianceTensor e ScaleTensor devono avere le stesse dimensioni.
- FusedAddTensor, InputTensor e OutputTensor devono avere le stesse dimensioni.
Supporto di Tensor
DML_FEATURE_LEVEL_4_1 e versioni successive
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportati | Tipi di dati supportati |
---|---|---|---|---|
InputTensor | Input | { InputDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
ScaleTensor | Input | { ScaleDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
BiasTensor | Input | { ScaleDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
FusedAddTensor | Input facoltativo | { InputDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
OutputTensor | Output | { InputDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
OutputMeanTensor | Output | { ScaleDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
OutputVarianceTensor | Output | { ScaleDimensions[] } | da 1 a 8 | FLOAT32, FLOAT16 |
Requisiti
Requisito | Valore |
---|---|
Intestazione | directml.h |