Compartilhar via


estrutura DML_MEAN_VARIANCE_NORMALIZATION1_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_NORMALIZATION1_OPERATOR_DESC {
  const DML_TENSOR_DESC   *InputTensor;
  const DML_TENSOR_DESC   *ScaleTensor;
  const DML_TENSOR_DESC   *BiasTensor;
  const DML_TENSOR_DESC   *OutputTensor;
  UINT                    AxisCount;
  const UINT              *Axes;
  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.

Se DML_FEATURE_LEVEL for menor que DML_FEATURE_LEVEL_4_0, as dimensões desse tensor deverão ser { ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }. As dimensões ScaleBatchCount, ScaleHeight e ScaleWidth devem corresponder a InputTensor ou ser definidas como 1 para transmitir automaticamente essas dimensões pela entrada.

Se DML_FEATURE_LEVEL for maior ou igual a DML_FEATURE_LEVEL_4_0, qualquer dimensão poderá ser definida como 1 e ser transmitida automaticamente para corresponder a InputTensor.

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 bias.

Se DML_FEATURE_LEVEL for menor que DML_FEATURE_LEVEL_4_0, as dimensões desse tensor deverão ser { BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }. As dimensões BiasBatchCount, BiasHeight e BiasWidth devem corresponder a InputTensor ou ser definidas como 1 para transmitir automaticamente essas dimensões pela entrada.

Se DML_FEATURE_LEVEL for maior ou igual a DML_FEATURE_LEVEL_4_0, qualquer dimensão poderá ser definida como 1 e ser transmitida automaticamente para corresponder a InputTensor.

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 o qual gravar os resultados. As dimensões desse tensor são { BatchCount, ChannelCount, Height, Width }.

AxisCount

Tipo: UINT

O número de eixos. Esse campo determina o tamanho da matriz Axes .

Axes

Tipo: _Field_size_(AxisCount) const UINT*

Os eixos ao longo dos quais calcular a Média e a Variação.

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.

Comentários

DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC é um superconjunto de funcionalidade de DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. Aqui, definir a matriz { 2, 3 }Axes como é o equivalente a definir CrossChannel como FALSE em DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC; ao definir a matriz { 1, 2, 3 }Axes como é equivalente a definir CrossChannel como TRUE.

Disponibilidade

Esse operador foi introduzido em DML_FEATURE_LEVEL_2_1.

Restrições do Tensor

BiasTensor, InputTensor, OutputTensor e ScaleTensor devem ter os mesmos DataType e DimensionCount.

Suporte ao Tensor

DML_FEATURE_LEVEL_3_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 1 a 8 FLOAT32, FLOAT16
ScaleTensor Entrada opcional 1 a 8 FLOAT32, FLOAT16
BiasTensor Entrada opcional 1 a 8 FLOAT32, FLOAT16
OutputTensor Saída 1 a 8 FLOAT32, FLOAT16

DML_FEATURE_LEVEL_2_1 e superior

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
InputTensor Entrada 4 FLOAT32, FLOAT16
ScaleTensor Entrada opcional 4 FLOAT32, FLOAT16
BiasTensor Entrada opcional 4 FLOAT32, FLOAT16
OutputTensor Saída 4 FLOAT32, FLOAT16

Requisitos

   
Cliente mínimo com suporte Windows 10 Build 20348
Servidor mínimo com suporte Windows 10 Build 20348
Cabeçalho directml.h

Confira também

Usando operadores fundidos para melhorar o desempenho