Compartilhar via


estrutura DML_BATCH_NORMALIZATION_TRAINING_OPERATOR_DESC (directml.h)

Executa uma normalização em lote na entrada. Esse operador executa a seguinte computação: Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias + FusedAdd).

Qualquer dimensão em ScaleTensor e BiasTensor pode ser definida como 1 e ser transmitida automaticamente para corresponder a InputTensor, mas, caso contrário, deve ser igual ao tamanho da dimensão correspondente de InputTensor. MeanTensor e VarianceTensor são computados na entrada em todo o conjunto de dimensões para as quais ScaleTensor e BiasTensor são iguais a um.

Sintaxe

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;
};

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de entrada.

ScaleTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de escala.

BiasTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de Bias.

FusedAddTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém dados adicionados ao resultado antes de FusedActivation, se houver.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor para gravar os resultados.

OutputMeanTensor

Tipo: const DML_TENSOR_DESC*

Um tensor no qual gravar a média da entrada.

OutputVarianceTensor

Tipo: const DML_TENSOR_DESC*

Um tensor no qual gravar a variância da entrada.

Epsilon

Tipo: FLOAT

O valor de epsilon a ser usado para evitar a divisão por zero.

FusedActivation

Tipo: _Maybenull_ const DML_OPERATOR_DESC*

Uma camada de ativação fundida opcional a ser aplicada após a normalização. Para obter mais informações, consulte Usando operadores fundidos para melhorar o desempenho.

Comentários

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_4_1.

Restrições do Tensor

  • BiasTensor, FusedAddTensor, InputTensor, OutputMeanTensor, OutputTensor, OutputVarianceTensor e ScaleTensor devem ter os mesmos DataType e DimensionCount.
  • BiasTensor, OutputMeanTensor, OutputVarianceTensor e ScaleTensor devem ter os mesmos Tamanhos.
  • FusedAddTensor, InputTensor e OutputTensor devem ter os mesmos Tamanhos.

Suporte ao Tensor

DML_FEATURE_LEVEL_4_1 e superior

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { InputDimensions[] } 1 a 8 FLOAT32, FLOAT16
ScaleTensor Entrada { ScaleDimensions[] } 1 a 8 FLOAT32, FLOAT16
BiasTensor Entrada { ScaleDimensions[] } 1 a 8 FLOAT32, FLOAT16
FusedAddTensor Entrada opcional { InputDimensions[] } 1 a 8 FLOAT32, FLOAT16
OutputTensor Saída { InputDimensions[] } 1 a 8 FLOAT32, FLOAT16
OutputMeanTensor Saída { ScaleDimensions[] } 1 a 8 FLOAT32, FLOAT16
OutputVarianceTensor Saída { ScaleDimensions[] } 1 a 8 FLOAT32, FLOAT16

Requisitos

Requisito Valor
Cabeçalho directml.h

Confira também