Condividi tramite


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

Vedi anche