Partager via


structure DML_RNN_OPERATOR_DESC (directml.h)

Exécute une fonction de réseau neuronal récurrent (RNN) à une couche sur l’entrée. Cette fonction est souvent appelée porte d’entrée. Cet opérateur exécute cette fonction plusieurs fois dans une boucle, dictée par la dimension de longueur de séquence et le SequenceLengthsTensor.

Équation de la direction vers l’avant

équation pour la direction vers l’avant

Équation pour la direction vers l’arrière

équation pour la direction vers l’arrière

Légende d’équation

légende d’équation

Syntaxe

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;
};

Membres

InputTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données d’entrée, X. Empaqueté (et potentiellement rembourré) dans un tenseur 4D avec les tailles de { 1, seq_length, batch_size, input_size }. seq_length est la dimension mappée à l’index, t. Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

WeightTensor

Type : const DML_TENSOR_DESC*

Tenseur contenant les données de pondération, concaténation W. de W_i et W_Bi (si bidirectionnel). Le tenseur a des { 1, num_directions, hidden_size, input_size }tailles . Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

RecurrenceTensor

Type : const DML_TENSOR_DESC*

Tenseur facultatif contenant les données de pondération de périodicité, R. Concaténation de R_i et R_Bi (si bidirectionnel). Ce tenseur a des { 1, num_directions, hidden_size, hidden_size }tailles . Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

BiasTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif contenant les données de biais pour la porte d’entrée, B. Concaténation de { W_bi, R_bi }et { W_Bbi, R_Bbi } (si bidirectionnel). Ce tenseur a des { 1, 1, num_directions, 2 * hidden_size }tailles . Si ce n’est pas spécifié, la valeur par défaut est 0. Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

HiddenInitTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif contenant le tenseur d’initialiseur de nœud masqué, H_[t-1] pour la première boucle index t. Si ce n’est pas spécifié, la valeur par défaut est 0. Ce tenseur a des { 1, num_directions, batch_size, hidden_size }tailles . Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

SequenceLengthsTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif contenant un seq_length indépendant pour chaque élément du lot. Si elle n’est pas spécifiée, toutes les séquences du lot ont une longueur seq_length. Ce tenseur a des { 1, 1, 1, batch_size }tailles . Le tenseur ne prend pas en charge l’indicateur DML_TENSOR_FLAG_OWNED_BY_DML .

OutputSequenceTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif avec lequel écrire la concaténation de toutes les valeurs de sortie de couche intermédiaire des nœuds masqués, H_t. Ce tenseur a des { seq_length, num_directions, batch_size, hidden_size }tailles . seq_length est mappé à l’index de boucle t.

OutputSingleTensor

Type : _Maybenull_ const DML_TENSOR_DESC*

Tenseur facultatif avec lequel écrire la valeur de sortie finale des nœuds masqués, H_t. Ce tenseur a des { 1, num_directions, batch_size, hidden_size }tailles .

ActivationDescCount

Type : UINT

Ce champ détermine la taille du tableau ActivationDescs .

ActivationDescs

Type : _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*

Tableau de DML_OPERATOR_DESC contenant les descriptions des opérateurs d’activation, f(). Le nombre de fonctions d’activation est égal au nombre de directions. Pour les directions avant et arrière, il est prévu qu’il y ait 1 fonction d’activation. Pour bidirectionnel, il est prévu qu’il y ait 2.

Direction

Type : DML_RECURRENT_NETWORK_DIRECTION

Direction de l’opérateur : avant, arrière ou bidirectionnel.

Disponibilité

Cet opérateur a été introduit dans DML_FEATURE_LEVEL_1_0.

Contraintes tensoriels

BiasTensor, HiddenInitTensor, InputTensor, OutputSequenceTensor, OutputSingleTensor, RecurrenceTensoret WeightTensor doivent avoir le même DataType.

Prise en charge de Tensor

Tenseur Genre Nombre de dimensions pris en charge Types de données pris en charge
InputTensor Entrée 4 FLOAT32, FLOAT16
WeightTensor Entrée 4 FLOAT32, FLOAT16
PériodicitéTensor Entrée 4 FLOAT32, FLOAT16
BiasTensor Entrée facultative 4 FLOAT32, FLOAT16
HiddenInitTensor Entrée facultative 4 FLOAT32, FLOAT16
SequenceLengthsTensor Entrée facultative 4 UINT32
OutputSequenceTensor Sortie facultative 4 FLOAT32, FLOAT16
OutputSingleTensor Sortie facultative 4 FLOAT32, FLOAT16

Configuration requise

   
En-tête directml.h