Compartir a través de


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 delante

Ecuación para la dirección hacia atrás

ecuación para la dirección hacia atrás

Leyenda de ecuaciones

leyenda de ecuación

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