estructura DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC (directml.h)
Realiza una función de normalización de varianza media en el tensor de entrada. Este operador calculará la media y la varianza del tensor de entrada para realizar la normalización. Este operador realiza el siguiente cálculo.
Output = FusedActivation(Scale * ((Input - Mean) / sqrt(Variance + Epsilon)) + Bias).
Sintaxis
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;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de entrada. Las dimensiones de este tensor deben ser { BatchCount, ChannelCount, Height, Width }
.
ScaleTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de escala.
Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_4_0, las dimensiones de este tensor deben ser { ScaleBatchCount, ChannelCount, ScaleHeight, ScaleWidth }
. Las dimensiones ScaleBatchCount, ScaleHeight y ScaleWidth deben coincidir con InputTensor o establecerse en 1 para difundir automáticamente esas dimensiones en la entrada.
Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_4_0, cualquier dimensión se puede establecer en 1 y se difundirá automáticamente para que coincida con InputTensor.
Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_5_2, este tensor es necesario si BiasTensor está presente. Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_5_2, este tensor puede ser null independientemente del valor de BiasTensor.
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos bias.
Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_4_0, las dimensiones de este tensor deben ser { BiasBatchCount, ChannelCount, BiasHeight, BiasWidth }
. Las dimensiones BiasBatchCount, BiasHeight y BiasWidth deben coincidir con InputTensor o establecerse en 1 para difundir automáticamente esas dimensiones en la entrada.
Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_4_0, cualquier dimensión se puede establecer en 1 y se difundirá automáticamente para que coincida con InputTensor.
Si DML_FEATURE_LEVEL es menor que DML_FEATURE_LEVEL_5_2, este tensor es necesario si ScaleTensor está presente. Si DML_FEATURE_LEVEL es mayor o igual que DML_FEATURE_LEVEL_5_2, este tensor puede ser null independientemente del valor de ScaleTensor.
OutputTensor
Tipo: const DML_TENSOR_DESC*
Tensor en el que se van a escribir los resultados. Las dimensiones de este tensor son { BatchCount, ChannelCount, Height, Width }
.
AxisCount
Tipo: UINT
Número de ejes. Este campo determina el tamaño de la matriz de ejes .
Axes
Tipo: _Field_size_(AxisCount) const UINT*
Ejes a lo largo del cual se calcula la media y la varianza.
NormalizeVariance
Tipo: BOOL
TRUE si la capa de normalización incluye varianza en el cálculo de normalización. De lo contrario, FALSE. Si es FALSE, la ecuación de normalización es Output = FusedActivation(Scale * (Input - Mean) + Bias)
.
Epsilon
Tipo: FLOAT
Valor epsilon que se va a usar para evitar la división por cero. Se recomienda un valor de 0,00001 como valor predeterminado.
FusedActivation
Tipo: _Maybenull_ const DML_OPERATOR_DESC*
Una capa de activación fusionada opcional que se aplicará después de la normalización.
Comentarios
DML_MEAN_VARIANCE_NORMALIZATION1_OPERATOR_DESC es un superconjunto de funcionalidad de DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC. En este caso, establecer la matriz { 2, 3 }
Axes en es el equivalente de establecer CrossChannel en FALSE en DML_MEAN_VARIANCE_NORMALIZATION_OPERATOR_DESC; mientras que establecer la matriz { 1, 2, 3 }
Axes en es equivalente a establecer CrossChannel en TRUE.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_2_1
.
Restricciones tensor
BiasTensor, InputTensor, OutputTensor y ScaleTensor deben tener el mismo DataType y DimensionCount.
Compatibilidad con Tensor
DML_FEATURE_LEVEL_3_1 y versiones posteriores
Tensor | Tipo | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | De 1 a 8 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada opcional | De 1 a 8 | FLOAT32, FLOAT16 |
BiasTensor | Entrada opcional | De 1 a 8 | FLOAT32, FLOAT16 |
OutputTensor | Resultados | De 1 a 8 | FLOAT32, FLOAT16 |
DML_FEATURE_LEVEL_2_1 y versiones posteriores
Tensor | Tipo | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32, FLOAT16 |
ScaleTensor | Entrada opcional | 4 | FLOAT32, FLOAT16 |
BiasTensor | Entrada opcional | 4 | FLOAT32, FLOAT16 |
OutputTensor | Resultados | 4 | FLOAT32, FLOAT16 |
Requisitos
Cliente mínimo compatible | compilación 20348 de Windows 10 |
Servidor mínimo compatible | compilación 20348 de Windows 10 |
Encabezado | directml.h |