Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Calcula gradientes de backpropagation para normalização em lote. DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC executa várias computações, que são detalhadas nas descrições de saída separadas.
OutputScaleGradientTensor e OutputBiasGradientTensor são computados usando somas no conjunto de dimensões para as quais MeanTensor, ScaleTensor e VarianceTensor são tamanhos iguais a um.
Sintaxe
struct DML_BATCH_NORMALIZATION_GRAD_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *InputGradientTensor;
const DML_TENSOR_DESC *MeanTensor;
const DML_TENSOR_DESC *VarianceTensor;
const DML_TENSOR_DESC *ScaleTensor;
const DML_TENSOR_DESC *OutputGradientTensor;
const DML_TENSOR_DESC *OutputScaleGradientTensor;
const DML_TENSOR_DESC *OutputBiasGradientTensor;
FLOAT Epsilon;
};
Membros
InputTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de entrada. Normalmente, esse é o mesmo tensor que foi fornecido como InputTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC no passe para frente.
InputGradientTensor
Tipo: const DML_TENSOR_DESC*
O tensor de gradiente de entrada. Normalmente, isso é obtido da saída de backpropagation de uma camada anterior.
MeanTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados médios. Normalmente, esse é o mesmo tensor que foi fornecido como MeanTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC no passe para frente.
VarianceTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de variação. Normalmente, esse é o mesmo tensor que foi fornecido como VarianceTensor para DML_OPERATOR_BATCH_NORMALIZATION no passe para frente.
ScaleTensor
Tipo: const DML_TENSOR_DESC*
Um tensor que contém os dados de escala. Normalmente, esse é o mesmo tensor que foi fornecido como ScaleTensor para DML_BATCH_NORMALIZATION_OPERATOR_DESC no passe para frente.
OutputGradientTensor
Tipo: const DML_TENSOR_DESC*
Para cada valor correspondente nas entradas, OutputGradient = InputGradient * (Scale / sqrt(Variance + Epsilon)).
OutputScaleGradientTensor
Tipo: const DML_TENSOR_DESC*
A computação a seguir é feita ou todos os valores correspondentes nas entradas.
OutputScaleGradient = sum(InputGradient * (Input - Mean) / sqrt(Variance + Epsilon))
OutputBiasGradientTensor
Tipo: const DML_TENSOR_DESC*
A computação a seguir é feita ou todos os valores correspondentes nas entradas.
OutputBiasGradient = sum(InputGradient)
Epsilon
Tipo: FLOAT
Um valor pequeno adicionado à variação para evitar zero.
Comentários
Disponibilidade
Esse operador foi introduzido em DML_FEATURE_LEVEL_3_1.
Restrições do Tensor
- InputGradientTensor, InputTensor, MeanTensor, OutputBiasGradientTensor, OutputGradientTensor, OutputScaleGradientTensor, ScaleTensor e VarianceTensor devem ter os mesmos DataType e DimensionCount.
- MeanTensor, OutputBiasGradientTensor, OutputScaleGradientTensor, ScaleTensor e VarianceTensor devem ter os mesmos Tamanhos.
- InputGradientTensor, InputTensor e OutputGradientTensor devem ter os mesmos Tamanhos.
Suporte ao Tensor
| Tensor | Tipo | Dimensões | Contagens de dimensões com suporte | Tipos de dados com suporte |
|---|---|---|---|---|
| InputTensor | Entrada | { InputDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| InputGradientTensor | Entrada | { InputDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| MeanTensor | Entrada | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| VarianceTensor | Entrada | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| ScaleTensor | Entrada | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| OutputGradientTensor | Saída | { InputDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| OutputScaleGradientTensor | Saída | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
| OutputBiasGradientTensor | Saída | { MeanDimensions[] } | 1 a 8 | FLOAT32, FLOAT16 |
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows Build 22000 |
| Servidor mínimo com suporte | Windows Build 22000 |
| Cabeçalho | directml.h |