DML_BATCH_NORMALIZATION_OPERATOR_DESC struttura (directml.h)

Esegue una normalizzazione batch sull'input. Questo operatore esegue il calcolo seguente: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Qualsiasi dimensione in MeanTensor, VarianceTensor, ScaleTensor e BiasTensor può essere impostata su 1 e essere automaticamente trasmessa in modo da corrispondere a InputTensor, ma in caso contrario deve essere uguale alle dimensioni della dimensione corrispondente da InputTensor.

Sintassi

struct DML_BATCH_NORMALIZATION_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *MeanTensor;
  const DML_TENSOR_DESC   *VarianceTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  BOOL                    Spatial;
  FLOAT                   Epsilon;
  const DML_OPERATOR_DESC *FusedActivation;
};

Members

InputTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di input.

MeanTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati Mean.

VarianceTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati di varianza.

ScaleTensor

Tipo: const DML_TENSOR_DESC*

Tensor contenente i dati di scalabilità.

BiasTensor

Tipo: const DML_TENSOR_DESC*

Tensore contenente i dati Bias.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Un tensore a cui scrivere i risultati.

Spatial

Tipo: BOOL

TRUE per specificare che le posizioni sono spaziali, in caso contrario FALSE. L'impostazione di questa opzione su FALSE richiederà la trasmissione delle dimensioni Width e Height di MeanTensor e VarianceTensor . Questo parametro è stato deprecato in DML_FEATURE_LEVEL_4_0 e non ha alcun effetto.

Epsilon

Tipo: FLOAT

Valore epsilon da usare 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 informazioni, vedere Uso degli operatori fusi per migliorare le prestazioni.

Disponibilità

Questo operatore è stato introdotto in DML_FEATURE_LEVEL_1_0.

Vincoli tensor

  • BiasTensor, InputTensor,MeanTensor, OutputTensor, ScaleTensor e VarianceTensor devono avere lo stesso Tipo di dati e DimensionCount.
  • InputTensor e OutputTensor devono avere le stesse dimensioni.

Supporto di Tensor

DML_FEATURE_LEVEL_3_1 e versioni successive

Tensore Tipo Dimensioni Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input { InputDimensions[] } da 1 a 8 FLOAT32, FLOAT16
MeanTensor Input { MeanDimensions[] } da 1 a 8 FLOAT32, FLOAT16
VarianceTensor Input { VarianceDimensions[] } da 1 a 8 FLOAT32, FLOAT16
ScaleTensor Input { ScaleDimensions[] } da 1 a 8 FLOAT32, FLOAT16
BiasTensor Input { BiasDimensions[] } da 1 a 8 FLOAT32, FLOAT16
OutputTensor Output { InputDimensions[] } da 1 a 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_1_0 e versioni successive

Tensore Tipo Dimensioni Conteggi delle dimensioni supportate Tipi di dati supportati
InputTensor Input { InputDimensions[] } 4 FLOAT32, FLOAT16
MeanTensor Input { MeanDimensions[] } 4 FLOAT32, FLOAT16
VarianceTensor Input { VarianceDimensions[] } 4 FLOAT32, FLOAT16
ScaleTensor Input { ScaleDimensions[] } 4 FLOAT32, FLOAT16
BiasTensor Input { BiasDimensions[] } 4 FLOAT32, FLOAT16
OutputTensor Output { InputDimensions[] } 4 FLOAT32, FLOAT16

Requisiti

   
Intestazione directml.h

Vedi anche