Ich bin mir nicht sicher, was ich aus der offiziellen Dokumentation verstehe, in der es heißt:
Rückgabe: Ein Paar (Ausgänge, Status) wobei:
outputs
: Der RNN-Ausgangstensor.Wenn
time_major == False
(Standard), ist dies eine Tensorform :[batch_size, max_time, cell.output_size]
.Wenn
time_major == True
dies ein Tensor ist :[max_time, batch_size, cell.output_size]
.Wenn
cell.output_size
es sich um ein (möglicherweise verschachteltes) Tupel von Ganzzahlen oder TensorShape-Objekten handelt, sind die Ausgaben ein Tupel mit derselben Struktur wie cell.output_size, das Tensoren mit Formen enthält, die den Formdaten in entsprechencell.output_size
.
state
: Der Endzustand. Wenn cell.state_size ein int ist, wird dies geformt[batch_size, cell.state_size]
. Wenn es sich um eine TensorShape handelt, wird diese geformt[batch_size] + cell.state_size
. Wenn es sich um ein (möglicherweise verschachteltes) Tupel von Ints oder TensorShape handelt, handelt es sich um ein Tupel mit den entsprechenden Formen. Wenn Zellen LSTMCells sind, ist der Status ein Tupel, das ein LSTMStateTuple für jede Zelle enthält.
Ist output[-1
] immer (in allen drei Zelltypen, dh RNN, GRU, LSTM) gleich state (zweites Element des Rückgabetupels)? Ich denke, die Literatur ist überall zu liberal in der Verwendung des Begriffs versteckter Zustand. Ist der versteckte Zustand in allen drei Zellen die Punktzahl, die herauskommt (warum er als versteckt bezeichnet wird, ist mir ein Rätsel, es scheint, dass der Zellzustand in LSTM als versteckter Zustand bezeichnet werden sollte, da er nicht offengelegt wird)?
quelle