DML_GRU_OPERATOR_DESC結構 (directml.h)

在輸入上執行 (標準層) 一層閘道遞歸單位 (GRU) 函式。 此運算子會使用多個閘道來執行此層。 這些網關會在序列長度維度和 sequenceLengthsTensor 所指定的循環中執行多次。

正向方向的方程式

正向方向的 方程式

向後方向的方程式

向後方向的 方程式

方程式圖例

方程式圖例

語法

struct DML_GRU_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;
  BOOL                            LinearBeforeReset;
};

成員

InputTensor

類型:const DML_TENSOR_DESC*

包含輸入數據的張量 X.Packed(且可能填補)到一個具有 { 1, seq_length, batch_size, input_size }大小 的 4D 張量。 seq_length是對應至索引 t 的維度。 張量不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

WeightTensor

類型:const DML_TENSOR_DESC*

包含權數數據的張量,W. 串連W_[zrh] 和 W_B[zrh] (如果雙向)。 張量 大小{ 1, num_directions, 3 * hidden_size, input_size }。 張量不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

RecurrenceTensor

類型:const DML_TENSOR_DESC*

包含循環數據的張量、R_[zrh] 和 R_B[zrh] 的串連 (如果雙向)。 張量 大小{ 1, num_directions, 3 * hidden_size, hidden_size }。 張量不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

BiasTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,其中包含偏差數據 B. 串連 (W_b[zrh], R_b[zrh]) 和 (W_Bb[zrh], R_Bb[zrh]) (如果雙向)。 張量 大小{ 1, 1, num_directions, 6 * hidden_size }。 張量不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

HiddenInitTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,包含隱藏節點初始化表達式張量,H_t-1 作為第一個迴圈索引 t。 如果未指定,則預設為 0。 此張量 大小{ 1, num_directions, batch_size, hidden_size }。 張量不支援 DML_TENSOR_FLAG_OWNED_BY_DML 旗標。

SequenceLengthsTensor

類型:_Maybenull_ const DML_TENSOR_DESC*

選擇性的張量,其中包含批次中每個元素的獨立seq_length。 如果未指定,則批次中的所有序列都有長度seq_length。 此張量 大小{ 1, 1, 1, batch_size }。 張量不支援 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*

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

ActivationDescCount

類型:UINT

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

ActivationDescs

類型:_Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*

DML_OPERATOR_DESC 陣列,其中包含啟用運算子的描述 f() 和 g()。 f() 和 g() 都是獨立於方向定義,這表示如果 DML_RECURRENT_NETWORK_DIRECTION_FORWARDDML_RECURRENT_NETWORK_DIRECTION_BACKWARD 是在 Direction中提供,則必須提供兩個啟用。 如果提供 DML_RECURRENT_NETWORK_DIRECTION_BIDIRECTIONAL,則必須提供四個啟用。 針對雙向的啟用,必須提供 f() 和 g() 向前,後面接著 f() 和 g() 的後向啟用。

Direction

類型:const DML_RECURRENT_NETWORK_DIRECTION*

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

LinearBeforeReset

類型:BOOL

TRUE 指定,在計算隱藏閘道的輸出時,應該先套用線性轉換,再乘以重設閘道的輸出。 否則,FALSE

可用性

此運算子是在 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