Condividi tramite


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 in avanti

Equazione per la direzione indietro

equazione per la direzione indietro

Legenda equazione

legenda dell'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, OutputSequenceTensorHiddenInitTensorRecurrenceTensorOutputSingleTensore 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