Compartir a través de


estructura DML_RNN_OPERATOR_DESC (directml.h)

Realiza una función de red neuronal recurrente (RNN) simple de capa en la entrada. Esta función se conoce a menudo como puerta de entrada. Este operador realiza esta función varias veces en un bucle, dictado por la dimensión de longitud de secuencia y 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_RNN_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;
};

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 { 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_i y W_Bi (si es bidireccional). El tensor tiene tamaños { 1, num_directions, hidden_size, input_size }. El tensor no admite la marca DML_TENSOR_FLAG_OWNED_BY_DML .

RecurrenceTensor

Tipo: const DML_TENSOR_DESC*

Tensor opcional que contiene los datos de peso de periodicidad, R. Concatenación de R_i y R_Bi (si es bidireccional). Este tensor tiene tamaños { 1, num_directions, 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 para la puerta de entrada, B. Concatenación de { W_bi, R_bi }y { W_Bbi, R_Bbi } (si es bidireccional). Este tensor tiene tamaños { 1, 1, num_directions, 2 * hidden_size }. Si no se especifica, el valor predeterminado es 0. 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 se va a escribir la concatenación de todos los valores de salida de la capa intermedia 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 se va a escribir el valor de salida final de los nodos ocultos, H_t. Este tensor tiene tamaños { 1, num_directions, batch_size, hidden_size }.

ActivationDescCount

Tipo: UINT

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(). El número de funciones de activación es igual al número de direcciones. En el caso de las direcciones hacia delante y hacia atrás, se espera que haya una función de activación. En el caso de las bidireccionales, se espera que sea 2.

Direction

Tipo: DML_RECURRENT_NETWORK_DIRECTION

Dirección del operador: hacia delante, hacia atrás o bidireccional.

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 Tipo 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

   
Encabezado directml.h