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 |