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_FORWARD 或 DML_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 條件約束
BiasTensor、HiddenInitTensor、InputTensor、OutputSequenceTensor、 OutputSingleTensor、RecurrenceTensor和 WeightTensor 必須具有相同 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 |