Compartilhar via


estrutura DML_RNN_OPERATOR_DESC (directml.h)

Executa uma função RNN (rede neural recorrente) simples de uma camada na entrada. Essa função geralmente é conhecida como Porta de Entrada. Esse operador executa essa função várias vezes em um loop, ditado pela dimensão de comprimento da sequência e pelo SequenceLengthsTensor.

Equação para a direção para a frente

equação para a direção para a frente

Equação para a direção para trás

equação para a direção para trás

Legenda da equação

equação legenda

Sintaxe

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

Membros

InputTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de entrada, X. Empacotado (e potencialmente acolchoado) em um tensor 4D com os tamanhos de { 1, seq_length, batch_size, input_size }. seq_length é a dimensão mapeada para o índice, t. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

WeightTensor

Tipo: const DML_TENSOR_DESC*

Um tensor que contém os dados de peso, W. Concatenação de W_i e W_Bi (se bidirecional). O tensor tem tamanhos { 1, num_directions, hidden_size, input_size }. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

RecurrenceTensor

Tipo: const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de peso de recorrência, R. Concatenação de R_i e R_Bi (se bidirecional). Esse tensor tem tamanhos { 1, num_directions, hidden_size, hidden_size }. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

BiasTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém os dados de desvio para o portão de entrada, B. Concatenação de { W_bi, R_bi }e { W_Bbi, R_Bbi } (se bidirecional). Esse tensor tem tamanhos { 1, 1, num_directions, 2 * hidden_size }. Se não for especificado, o padrão será 0. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

HiddenInitTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém o tensor do inicializador de nó oculto, H_[t-1] para o primeiro índice de loop t. Se não for especificado, o padrão será 0. Esse tensor tem tamanhos { 1, num_directions, batch_size, hidden_size }. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

SequenceLengthsTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional que contém uma seq_length independente para cada elemento no lote. Se não for especificado, todas as sequências no lote terão comprimento seq_length. Esse tensor tem tamanhos { 1, 1, 1, batch_size }. O tensor não dá suporte ao sinalizador DML_TENSOR_FLAG_OWNED_BY_DML .

OutputSequenceTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional com o qual gravar a concatenação de todos os valores de saída de camada intermediária dos nós ocultos, H_t. Esse tensor tem tamanhos { seq_length, num_directions, batch_size, hidden_size }. seq_length é mapeado para o índice de loop t.

OutputSingleTensor

Tipo: _Maybenull_ const DML_TENSOR_DESC*

Um tensor opcional com o qual gravar o valor de saída final dos nós ocultos H_t. Esse tensor tem tamanhos { 1, num_directions, batch_size, hidden_size }.

ActivationDescCount

Tipo: UINT

Esse campo determina o tamanho da matriz ActivationDescs .

ActivationDescs

Tipo: _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*

Uma matriz de DML_OPERATOR_DESC que contém as descrições dos operadores de ativação, f(). O número de funções de ativação é igual ao número de direções. Para direções para frente e para trás, espera-se que haja uma função de ativação. Para Bidirecional, espera-se que haja 2.

Direction

Tipo: DML_RECURRENT_NETWORK_DIRECTION

A direção do operador: para frente, para trás ou bidirecional.

Disponibilidade

Esse operador foi introduzido no DML_FEATURE_LEVEL_1_0.

Restrições do Tensor

BiasTensor, HiddenInitTensor, InputTensor, OutputSequenceTensor, OutputSingleTensor, RecurrenceTensore WeightTensor devem ter o mesmo DataType.

Suporte ao Tensor

Tensor Tipo Contagens de dimensões com suporte Tipos de dados com suporte
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 Saída opcional 4 FLOAT32, FLOAT16
OutputSingleTensor Saída opcional 4 FLOAT32, FLOAT16

Requisitos

   
Cabeçalho directml.h