Compartilhar via


estrutura DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC (directml.h)

Executa uma função de normalização de variação média no tensor de entrada. Esse operador calculará a média e a variação do tensor de entrada para executar a normalização. Esse operador executa a computação a seguir.

Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).

Sintaxe

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

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de entrada. As dimensões desse tensor devem ser { BatchCount, ChannelCount, Height, Width }.

ScaleTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de escala. As dimensões desse tensor devem ser { BatchCount, ChannelCount, Height, Width }. Qualquer dimensão pode ser substituída por 1 para difundir nessa dimensão. Se DML_FEATURE_LEVEL for menor que DML_FEATURE_LEVEL_5_2, esse tensor será necessário se BiasTensor estiver presente. Se DML_FEATURE_LEVEL for maior ou igual a DML_FEATURE_LEVEL_5_2, esse tensor poderá ser nulo, independentemente do valor de BiasTensor.

BiasTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de desvio. As dimensões desse tensor devem ser { BatchCount, ChannelCount, Height, Width }. Qualquer dimensão pode ser substituída por 1 para difundir nessa dimensão. Se DML_FEATURE_LEVEL for menor que DML_FEATURE_LEVEL_5_2, esse tensor será necessário se ScaleTensor estiver presente. Se DML_FEATURE_LEVEL for maior ou igual a DML_FEATURE_LEVEL_5_2, esse tensor poderá ser nulo, independentemente do valor de ScaleTensor.

OutputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor para gravar os resultados. As dimensões desse tensor são { BatchCount, ChannelCount, Height, Width }.

CrossChannel

Tipo: BOOL

Quando TRUE, a camada MeanVariance inclui canais nos cálculos Média e Variação, o que significa que eles são normalizados entre eixos {ChannelCount, Height, Width}. Quando os cálculos FALSE, Mean e Variance são normalizados entre eixos {Height, Width} com cada canal sendo independente.

NormalizeVariance

Tipo: BOOL

TRUE se a camada normalização incluir Variação no cálculo de normalização. Caso contrário, FALSE. Se FALSE, a equação de normalização será Output = FusedActivation(Scale * (Input - Mean) + Bias).

Epsilon

Tipo: FLOAT

O valor de epsilon a ser usado para evitar a divisão por zero. Um valor de 0,00001 é recomendado como padrão.

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

Uma versão mais recente desse operador, DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC, foi introduzida no DML_FEATURE_LEVEL_2_1.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_1_0.

Restrições do Tensor

  • InputTensor e OutputTensor devem ter os mesmos Tamanhos.
  • BiasTensor, InputTensor, OutputTensor e ScaleTensor devem ter o mesmo DataType.

Suporte ao Tensor

Tensor Tipo Dimensões Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada { BatchCount, ChannelCount, Height, Width } 4 FLOAT32, FLOAT16
ScaleTensor Entrada opcional { ScaleBatchCount, ScaleChannelCount, ScaleHeight, ScaleWidth } 4 FLOAT32, FLOAT16
BiasTensor Entrada opcional { BiasBatchCount, BiasChannelCount, BiasHeight, BiasWidth } 4 FLOAT32, FLOAT16
OutputTensor Saída { BatchCount, ChannelCount, Height, Width } 4 FLOAT32, FLOAT16

Requisitos

   
Cabeçalho directml.h

Confira também