DML_RNN_OPERATOR_DESC-Struktur (directml.h)
Führt eine einschichtige einfache rezidivierende neuronale Netzwerkfunktion (RNN) für die Eingabe aus. Diese Funktion wird häufig als Eingabegate bezeichnet. Dieser Operator führt diese Funktion mehrmals in einer Schleife aus, die von der Sequenzlängendimension und dem SequenceLengthsTensor diktiert wird.
Formel für die Vorwärtsrichtung
Formel für die Rückwärtsrichtung
Formellegende
Syntax
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;
};
Member
InputTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor, der die Eingabedaten enthält, X. Verpackt (und möglicherweise gepolstert) in einen 4D-Tensor mit den Größen von { 1, seq_length, batch_size, input_size }
. seq_length ist die Dimension, die dem Index zugeordnet ist, t. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
WeightTensor
Typ: const DML_TENSOR_DESC*
Ein Tensor mit den Gewichtungsdaten, W. Verkettung von W_i und W_Bi (wenn bidirektional). Der Tensor hat die Größen { 1, num_directions, hidden_size, input_size }
. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
RecurrenceTensor
Typ: const DML_TENSOR_DESC*
Ein optionaler Tensor mit den Daten zur Wiederholungsgewichtung, R. Verkettung von R_i und R_Bi (wenn bidirektional). Dieser Tensor hat die Größen { 1, num_directions, hidden_size, hidden_size }
. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
BiasTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der die Biasdaten für das Eingabegate, B. Verkettung von { W_bi, R_bi }
und { W_Bbi, R_Bbi }
(wenn bidirektional) enthält. Dieser Tensor hat die Größen { 1, 1, num_directions, 2 * hidden_size }
. Wenn nicht angegeben, wird standardmäßig 0 angegeben. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
HiddenInitTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der den ausgeblendeten Knoteninitialisierer-Tensor enthält, H_[t-1] für den ersten Schleifenindex t. Wenn nicht angegeben, wird standardmäßig 0 angegeben. Dieser Tensor hat die Größen { 1, num_directions, batch_size, hidden_size }
. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
SequenceLengthsTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, der eine unabhängige seq_length für jedes Element im Batch enthält. Wenn nicht angegeben, haben alle Sequenzen im Batch die Länge seq_length. Dieser Tensor hat die Größen { 1, 1, 1, batch_size }
. Der Tensor unterstützt das DML_TENSOR_FLAG_OWNED_BY_DML-Flag nicht.
OutputSequenceTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, mit dem die Verkettung aller Ausgabewerte der zwischengeschalteten Ebenen der ausgeblendeten Knoten geschrieben werden soll, H_t. Dieser Tensor hat die Größen { seq_length, num_directions, batch_size, hidden_size }
. seq_length wird dem Schleifenindex t zugeordnet.
OutputSingleTensor
Typ: _Maybenull_ const DML_TENSOR_DESC*
Ein optionaler Tensor, mit dem der endgültige Ausgabewert der ausgeblendeten Knoten geschrieben werden soll, H_t. Dieser Tensor hat die Größen { 1, num_directions, batch_size, hidden_size }
.
ActivationDescCount
Typ: UINT
Dieses Feld bestimmt die Größe des ActivationDescs-Arrays .
ActivationDescs
Typ: _Field_size_(ActivationDescCount) const DML_OPERATOR_DESC*
Ein Array von DML_OPERATOR_DESC , das die Beschreibungen der Aktivierungsoperatoren enthält, f(). Die Anzahl der Aktivierungsfunktionen entspricht der Anzahl der Richtungen. Für Vorwärts- und Rückwärtsrichtungen wird erwartet, dass es eine Aktivierungsfunktion gibt. Für Bidirektionales wird erwartet, dass es 2 sein wird.
Direction
Typ: DML_RECURRENT_NETWORK_DIRECTION
Die Richtung des Operators: vorwärts, rückwärts oder bidirektional.
Verfügbarkeit
Dieser Operator wurde in DML_FEATURE_LEVEL_1_0
eingeführt.
Tensoreinschränkungen
BiasTensor, HiddenInitTensor
, InputTensor, OutputSequenceTensor
, OutputSingleTensor
, RecurrenceTensor
und WeightTensor
müssen denselben DataType aufweisen.
Tensorunterstützung
Tensor | Art | Unterstützte Dimensionsanzahl | Unterstützte Datentypen |
---|---|---|---|
InputTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
WeightTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
RecurrenceTensor | Eingabe | 4 | FLOAT32, FLOAT16 |
BiasTensor | Optionale Eingabe | 4 | FLOAT32, FLOAT16 |
HiddenInitTensor | Optionale Eingabe | 4 | FLOAT32, FLOAT16 |
SequenceLengthsTensor | Optionale Eingabe | 4 | UINT32 |
OutputSequenceTensor | Optionale Ausgabe | 4 | FLOAT32, FLOAT16 |
OutputSingleTensor | Optionale Ausgabe | 4 | FLOAT32, FLOAT16 |
Anforderungen
Kopfzeile | directml.h |