estructura DML_GRU_OPERATOR_DESC (directml.h)
Realiza una función de unidad recurrente (GRU) de una capa (capas estándar) en la entrada. Este operador usa varias puertas para realizar esta capa. Estas puertas se realizan varias veces en un bucle dictado por la dimensión de longitud de secuencia y la SequenceLengthsTensor.
Ecuación para la dirección hacia delante
Ecuación para la dirección hacia atrás
Leyenda de ecuaciones
Sintaxis
struct DML_GRU_OPERATOR_DESC {
const DML_TENSOR_DESC *InputTensor;
const DML_TENSOR_DESC *WeightTensor;
const DML_TENSOR_DESC *RecurrenceTensor;
const DML_TENSOR_DESC *BiasTensor;
const DML_TENSOR_DESC *HiddenInitTensor;
const DML_TENSOR_DESC *SequenceLengthsTensor;
const DML_TENSOR_DESC *OutputSequenceTensor;
const DML_TENSOR_DESC *OutputSingleTensor;
UINT ActivationDescCount;
const DML_OPERATOR_DESC *ActivationDescs;
DML_RECURRENT_NETWORK_DIRECTION Direction;
BOOL LinearBeforeReset;
};
Miembros
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de entrada, X. Empaquetado (y potencialmente rellenado) en un tensor 4D con los tamaños de de { 1, seq_length, batch_size, input_size }
. seq_length es la dimensión que se asigna al índice, t. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
WeightTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de peso, W. Concatenación de W_[zrh] y W_B[zrh] (si bidireccional). El tensor tiene Tamaños{ 1, num_directions, 3 * hidden_size, input_size }
. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
RecurrenceTensor
Tipo: const DML_TENSOR_DESC*
Tensor que contiene los datos de periodicidad, R. Concatenación de R_[zrh] y R_B[zrh] (si bidireccional). El tensor tiene Tamaños{ 1, num_directions, 3 * hidden_size, hidden_size }
. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene los datos de sesgo, B. Concatenación de (W_b[zrh], R_b[zrh]) y (W_Bb[zrh], R_Bb[zrh]) (si bidireccional). El tensor tiene Tamaños{ 1, 1, num_directions, 6 * hidden_size }
. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
HiddenInitTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene el tensor de inicializador de nodo oculto, H_t-1 para el primer índice de bucle t. Si no se especifica, el valor predeterminado es 0. Este tensor tiene Tamaños{ 1, num_directions, batch_size, hidden_size }
. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
SequenceLengthsTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional que contiene un seq_length independiente para cada elemento del lote. Si no se especifica, todas las secuencias del lote tienen longitud seq_length. Este tensor tiene Tamaños{ 1, 1, 1, batch_size }
. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML.
OutputSequenceTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional con el que escribir la concatenación de todos los valores de salida intermedios de los nodos ocultos, H_t. Este tensor tiene Tamaños{ seq_length, num_directions, batch_size, hidden_size }
. seq_length se asigna al índice de bucle t.
OutputSingleTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensor opcional con el que escribir el último valor de salida de los nodos ocultos, H_t. Este tensor tiene Tamaños{ 1, num_directions, batch_size, hidden_size }
.
ActivationDescCount
Tipo: UINT de
Este campo determina el tamaño de la matriz activationDescs
ActivationDescs
Tipo: _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*
Matriz de DML_OPERATOR_DESC que contiene las descripciones de los operadores de activación, f() y g(). Tanto f() como g() se definen independientemente de la dirección, lo que significa que si se proporcionan DML_RECURRENT_NETWORK_DIRECTION_FORWARD o DML_RECURRENT_NETWORK_DIRECTION_BACKWARD en Dirección, se deben proporcionar dos activaciones. Si se proporciona DML_RECURRENT_NETWORK_DIRECTION_BIDIRECTIONAL, se deben proporcionar cuatro activaciones. En el caso de las bidireccionales, las activaciones deben proporcionarse f() y g() para el reenvío seguido de f() y g() para versiones anteriores.
Direction
Tipo: const DML_RECURRENT_NETWORK_DIRECTION*
Dirección del operador: hacia delante, hacia atrás o bidireccional.
LinearBeforeReset
Tipo: BOOL de
TRUE especificar que, al calcular la salida de la puerta oculta, se debe aplicar la transformación lineal antes de multiplicar por la salida de la puerta de restablecimiento. De lo contrario, FALSE.
Disponibilidad
Este operador se introdujo en DML_FEATURE_LEVEL_1_0
.
Restricciones tensor
BiasTensor, HiddenInitTensor, InputTensor, OutputSequenceTensor, OutputSingleTensor, RecurrenceTensory WeightTensor deben tener el mismo DataType.
Compatibilidad con Tensor
Tensor | Amable | Recuentos de dimensiones admitidos | Tipos de datos admitidos |
---|---|---|---|
InputTensor | Entrada | 4 | FLOAT32, FLOAT16 |
WeightTensor | Entrada | 4 | FLOAT32, FLOAT16 |
RecurrenceTensor | Entrada | 4 | FLOAT32, FLOAT16 |
BiasTensor | Entrada opcional | 4 | FLOAT32, FLOAT16 |
HiddenInitTensor | Entrada opcional | 4 | FLOAT32, FLOAT16 |
SequenceLengthsTensor | Entrada opcional | 4 | UINT32 |
OutputSequenceTensor | Salida opcional | 4 | FLOAT32, FLOAT16 |
OutputSingleTensor | Salida opcional | 4 | FLOAT32, FLOAT16 |
Requisitos
Requisito | Valor |
---|---|
encabezado de |
directml.h |