DML_RNN_OPERATOR_DESC struttura (directml.h)
Esegue una funzione RNN (One-Layer Simple Neural Network) sull'input. Questa funzione viene spesso definita gate di input. Questo operatore esegue questa funzione più volte in un ciclo, dettata dalla dimensione della lunghezza della sequenza e dall'oggetto SequenceLengthsTensor.
Equazione per la direzione in avanti
Equazione per la direzione indietro
Legenda equazione
Sintassi
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;
};
Members
InputTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati di input, X. Compresso (e potenzialmente riempito) in un tensore 4D con le dimensioni di { 1, seq_length, batch_size, input_size }
. seq_length è la dimensione mappata all'indice, t. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
WeightTensor
Tipo: const DML_TENSOR_DESC*
Tensore contenente i dati di peso, W. Concatenazione di W_i e W_Bi (se bidirezionale). Il tensore ha dimensioni { 1, num_directions, hidden_size, input_size }
. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
RecurrenceTensor
Tipo: const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati di peso ricorrenza, R. Concatenazione di R_i e R_Bi (se bidirezionale). Questo tensore ha dimensioni { 1, num_directions, hidden_size, hidden_size }
. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
BiasTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente i dati di pregiudizio per il gate di input, B. Concatenazione di { W_bi, R_bi }
e { W_Bbi, R_Bbi }
(se bidirezionale). Questo tensore ha dimensioni { 1, 1, num_directions, 2 * hidden_size }
. Se non specificato, il valore predefinito è 0. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
HiddenInitTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente il tensore del nodo nascosto, H_[t-1] per il primo indice ciclo t. Se non specificato, il valore predefinito è 0. Questo tensore ha dimensioni { 1, num_directions, batch_size, hidden_size }
. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
SequenceLengthsTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo contenente un seq_length indipendente per ogni elemento nel batch. Se non specificato, tutte le sequenze nel batch hanno lunghezza seq_length. Questo tensore ha dimensioni { 1, 1, 1, batch_size }
. Il tensore non supporta il flag di DML_TENSOR_FLAG_OWNED_BY_DML .
OutputSequenceTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo con cui scrivere la concatenazione di tutti i valori di output intermedi del livello intermedio dei nodi nascosti, H_t. Questo tensore ha dimensioni { seq_length, num_directions, batch_size, hidden_size }
. seq_length viene eseguito il mapping all'indice ciclo t.
OutputSingleTensor
Tipo: _Maybenull_ const DML_TENSOR_DESC*
Tensore facoltativo con cui scrivere il valore di output finale dei nodi nascosti, H_t. Questo tensore ha dimensioni { 1, num_directions, batch_size, hidden_size }
.
ActivationDescCount
Tipo: UINT
Questo campo determina le dimensioni della matrice ActivationDescs .
ActivationDescs
Tipo: _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*
Matrice di DML_OPERATOR_DESC contenente le descrizioni degli operatori di attivazione, f(). Il numero di funzioni di attivazione è uguale al numero di direzioni. Per le direzioni avanti e indietro è prevista una funzione di attivazione 1. Per La bidirezionale è previsto che siano 2.
Direction
Tipo: DML_RECURRENT_NETWORK_DIRECTION
Direzione dell'operatore: avanti, indietro o bidirezionale.
Disponibilità
Questo operatore è stato introdotto in DML_FEATURE_LEVEL_1_0
.
Vincoli tensor
BiasTensor, , InputTensor, OutputSequenceTensor
HiddenInitTensor
RecurrenceTensor
OutputSingleTensor
e WeightTensor
deve avere lo stesso Tipo di dati.
Supporto di Tensor
Tensore | Tipo | Conteggi delle dimensioni supportate | Tipi di dati supportati |
---|---|---|---|
InputTensor | Input | 4 | FLOAT32, FLOAT16 |
WeightTensor | Input | 4 | FLOAT32, FLOAT16 |
RicorrenzaTensor | Input | 4 | FLOAT32, FLOAT16 |
BiasTensor | Input facoltativo | 4 | FLOAT32, FLOAT16 |
HiddenInitTensor | Input facoltativo | 4 | FLOAT32, FLOAT16 |
SequenceLengthsTensor | Input facoltativo | 4 | UINT32 |
OutputSequenceTensor | Output facoltativo | 4 | FLOAT32, FLOAT16 |
OutputSingleTensor | Output facoltativo | 4 | FLOAT32, FLOAT16 |
Requisiti
Intestazione | directml.h |