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 條件約束
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 |