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 |