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’arrière
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
, RecurrenceTensor
et 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 |