DML_GRU_OPERATOR_DESC構造体 (directml.h)
入力に対して (標準レイヤー) 1 層ゲート再帰ユニット (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.
WeightTensor
型: const DML_TENSOR_DESC*
重みデータを含むテンソル。W. W_[zrh] と W_B[zrh] の連結 (双方向の場合)。 テンソルには
RecurrenceTensor
型: const DML_TENSOR_DESC*
繰り返しデータを含むテンソル。R. R_[zrh] と R_B[zrh] の連結 (双方向の場合)。 テンソルには
BiasTensor
型: _Maybenull_ const DML_TENSOR_DESC*
バイアス データを含む省略可能なテンソル。B. 連結 (W_b[zrh]、R_b[zrh])、(W_Bb[zrh]、R_Bb[zrh]) (双方向の場合)。 テンソルには
HiddenInitTensor
型: _Maybenull_ const DML_TENSOR_DESC*
非表示ノード初期化子テンソルを含む省略可能なテンソル。最初のループ インデックス t のH_t-1。 指定しない場合、既定値は 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*
アクティブ化演算子 f() と g() の説明を含む DML_OPERATOR_DESC の配列。 f() と g() の両方が方向とは独立して定義されます。つまり、DML_RECURRENT_NETWORK_DIRECTION_FORWARD または DML_RECURRENT_NETWORK_DIRECTION_BACKWARD が 方向で指定されている場合は、2 つのアクティブ化を指定する必要があります。 DML_RECURRENT_NETWORK_DIRECTION_BIDIRECTIONAL を指定する場合は、4 つのアクティブ化を指定する必要があります。 双方向の場合は、前方に f() と g() を指定し、その後に後方に f() と g() を指定する必要があります。
Direction
型: const DML_RECURRENT_NETWORK_DIRECTION*
演算子の方向 (前方、後方、双方向)。
LinearBeforeReset
型: BOOL
TRUE
可用性
この演算子は、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 |