共用方式為


DML_RNN_OPERATOR_DESC 結構 (directml.h)

在輸入上執行一層簡單的遞迴類神經網路 (RNN) 函式。 此函式通常稱為輸入閘道。 這個運算子會在迴圈中多次執行此函式,此函式是由序列長度維度和 SequenceLengthsTensor所決定。

正向方程式

正向方程式

向後方向的方程式

向後方向的方程式

方程式圖例

方程式圖例

語法

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

成員

InputTensor

類型:const DML_TENSOR_DESC*

包含輸入資料 X 的張量。封裝 (,並可能填補) 成一個大小為 的 { 1, seq_length, batch_size, input_size } 4D 張量。 seq_length 是對應至索引 t 的維度。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

WeightTensor

類型:const DML_TENSOR_DESC*

如果雙向) ,則包含權數資料 W. 串連W_i和W_Bi (。 張量的大小 { 1, num_directions, hidden_size, input_size } 為 。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

RecurrenceTensor

類型:const DML_TENSOR_DESC*

選擇性的張量,包含迴圈權數資料 R。如果雙向) ,則串連R_i和R_Bi (。 這個張量的大小 { 1, num_directions, hidden_size, hidden_size } 為 。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

BiasTensor

類型: _Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,其中包含輸入閘道的偏差資料 B.如果雙向) ,則為 串連 { W_bi, R_bi }{ W_Bbi, R_Bbi } (。 這個張量的大小 { 1, 1, num_directions, 2 * hidden_size } 為 。 如果未指定,則預設為 0。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

HiddenInitTensor

類型: _Maybenull_ const DML_TENSOR_DESC*

選擇性的 tensor,其中包含第一個循環索引 t 的隱藏節點初始化運算式 tensor H_[t-1]。 如果未指定,則預設為 0。 這個張量的大小 { 1, num_directions, batch_size, hidden_size } 為 。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

SequenceLengthsTensor

類型: _Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,其中包含批次中每個元素的獨立seq_length。 如果未指定,批次中的所有序列都會有長度seq_length。 這個張量的大小 { 1, 1, 1, batch_size } 為 。 tensor 不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

OutputSequenceTensor

類型: _Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,用來寫入隱藏節點的所有中繼層輸出值串連,H_t。 這個張量的大小 { seq_length, num_directions, batch_size, hidden_size } 為 。 seq_length對應至循環索引 t。

OutputSingleTensor

類型: _Maybenull_ const DML_TENSOR_DESC*

選擇性的 tensor,用來寫入隱藏節點的最終輸出值,H_t。 這個張量的大小 { 1, num_directions, batch_size, hidden_size } 為 。

ActivationDescCount

類型: UINT

此欄位會決定 ActivationDescs 陣列的大小。

ActivationDescs

類型:_Field_size_ (ActivationDescCount) const DML_OPERATOR_DESC*

DML_OPERATOR_DESC陣列 ,其中包含啟用 運算子 f () 的描述。 啟用函式的數目等於方向數目。 針對向前和向後方向,預期有 1 個啟用函式。 針對雙向,預期會有 2 個。

Direction

類型: DML_RECURRENT_NETWORK_DIRECTION

運算子的方向:向前、向後或雙向。

可用性

這個運算子是在 中 DML_FEATURE_LEVEL_1_0 引進的。

Tensor 條件約束

BiasTensorHiddenInitTensorInputTensorOutputSequenceTensorOutputSingleTensorRecurrenceTensorWeightTensor 必須具有相同 的 DataType

Tensor 支援

種類 支援的維度計數 支援的資料類型
InputTensor 輸入 4 FLOAT32、FLOAT16
WeightTensor 輸入 4 FLOAT32、FLOAT16
RecurrenceTensor 輸入 4 FLOAT32、FLOAT16
BiasTensor 選擇性輸入 4 FLOAT32、FLOAT16
HiddenInitTensor 選擇性輸入 4 FLOAT32、FLOAT16
SequenceLengthsTensor 選擇性輸入 4 UINT32
OutputSequenceTensor 選擇性輸出 4 FLOAT32、FLOAT16
OutputSingleTensor 選擇性輸出 4 FLOAT32、FLOAT16

規格需求

   
標頭 directml.h