DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC struttura (directml.h)
Esegue una funzione di normalizzazione della varianza media nel tensore di input. Questo operatore calcola la media e la varianza del tensore di input per eseguire la normalizzazione. Questo operatore esegue il calcolo seguente.
Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).
Sintassi
struct DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *OutputTensor;
BOOL CrossChannel;
BOOL NormalizeVariance;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati di input. Le dimensioni di questo tensore devono essere { BatchCount, ChannelCount, Height, Width }
.
ScaleTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati di scalabilità. Le dimensioni di questo tensore devono essere { BatchCount, ChannelCount, Height, Width }
. Qualsiasi dimensione può essere sostituita con 1 da trasmettere in tale dimensione. Se DML_FEATURE_LEVEL è minore di DML_FEATURE_LEVEL_5_2, questo tensore è necessario se è presente BiasTensor . Se DML_FEATURE_LEVEL è maggiore o uguale a DML_FEATURE_LEVEL_5_2, questo tensore può essere null indipendentemente dal valore di BiasTensor.
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati di pregiudizio. Le dimensioni di questo tensore devono essere { BatchCount, ChannelCount, Height, Width }
. Qualsiasi dimensione può essere sostituita con 1 da trasmettere in tale dimensione. Se DML_FEATURE_LEVEL è minore di DML_FEATURE_LEVEL_5_2, questo tensore è necessario se ScaleTensor è presente. Se DML_FEATURE_LEVEL è maggiore o uguale a DML_FEATURE_LEVEL_5_2, questo tensore può essere null indipendentemente dal valore di ScaleTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Un tensore a cui scrivere i risultati. Le dimensioni di questo tensore sono { BatchCount, ChannelCount, Height, Width }
.
CrossChannel
Tipo: BOOL
Quando TRUE, il livello MeanVariance include canali nei calcoli Di media e varianza, ovvero vengono normalizzati tra assi {ChannelCount, Height, Width}
. Quando false, i calcoli di media e varianza vengono normalizzati tra gli assi {Height, Width}
con ogni canale indipendente.
NormalizeVariance
Tipo: BOOL
TRUE se il livello di normalizzazione include varianza nel calcolo della normalizzazione. In caso contrario, FALSE. Se FALSE, l'equazione di normalizzazione è Output = FusedActivation(Scale * (Input - Mean) + Bias)
.
Epsilon
Tipo: FLOAT
Valore epsilon da usare per evitare la divisione per zero. Il valore predefinito è 0,00001.
FusedActivation
Tipo: _Maybenull_ const DML_OPERATOR_DESC*
Livello di attivazione fuso facoltativo da applicare dopo la normalizzazione. Per altre informazioni, vedere Uso degli operatori fusi per migliorare le prestazioni.
Commenti
Una versione più recente di questo operatore, DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC, è stata introdotta in DML_FEATURE_LEVEL_2_1
.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_1_0
.
Vincoli tensor
- InputTensor e OutputTensor devono avere le stesse dimensioni.
- BiasTensor, InputTensor, OutputTensor e ScaleTensor devono avere lo stesso tipo di dati.
Supporto di Tensor
Tensore | Tipo | Dimensioni | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|---|
InputTensor | Input | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Input facoltativo | { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } | 4 | FLOAT32, FLOAT16 |
BiasTensor | Input facoltativo | { BiasBatchCount, BiasChannelCount, BiasHeight, BiasWidth } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Output | { BatchCount, ChannelCount, Height, Width } | 4 | FLOAT32, FLOAT16 |
Requisiti
Intestazione | directml.h |