estrutura DML_BATCH_NORMALIZATION_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)
.
Qualquer dimensão em MeanTensor, VarianceTensor, 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.
Sintaxe
struct DML_BATCH_NORMALIZATION_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *MeanTensor;
const DML_TENSOR_DESC *VarianceTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *OutputTensor;
BOOL Spatial;
FLOAT Epsilon;
const DML_OPERATOR_DESC *FusedActivation;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de entrada.
MeanTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados Mean.
VarianceTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de variação.
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 viés.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Um tensor para o qual gravar os resultados.
Spatial
Tipo: BOOL
TRUE para especificar que os locais são espaciais, caso contrário, FALSE. Definir isso como FALSE exigirá que as dimensões Width e Height de MeanTensor e VarianceTensor não sejam transmitidas . Esse parâmetro foi preterido em DML_FEATURE_LEVEL_4_0 e não tem efeito.
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.
Disponibilidade
Esse operador foi introduzido em DML_FEATURE_LEVEL_1_0
.
Restrições do Tensor
- BiasTensor, InputTensor, MeanTensor, OutputTensor, ScaleTensor e VarianceTensor devem ter os mesmos DataType e DimensionCount.
- InputTensor e OutputTensor devem ter os mesmos Tamanhos.
Suporte ao Tensor
DML_FEATURE_LEVEL_3_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 |
MeanTensor | Entrada | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
VarianceTensor | Entrada | { VarianceDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada | { ScaleDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
BiasTensor | Entrada | { BiasDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
OutputTensor | Saída | { InputDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_1_0 e superior
Tensor | Tipo | Dimensões | Contagens de dimensões com suporte | Tipos de dados com suporte |
---|---|---|---|---|
InputTensor | Entrada | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
MeanTensor | Entrada | { MeanDimensions[] } | 4 | FLOAT32, FLOAT16 |
VarianceTensor | Entrada | { VarianceDimensions[] } | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada | { ScaleDimensions[] } | 4 | FLOAT32, FLOAT16 |
BiasTensor | Entrada | { BiasDimensions[] } | 4 | FLOAT32, FLOAT16 |
OutputTensor | Saída | { InputDimensions[] } | 4 | FLOAT32, FLOAT16 |
Requisitos
Cabeçalho | directml.h |