Condividi tramite


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

Vedi anche