(przy użyciu pythona)Wyjście z Tensorflow LSTM-Cell
Mam pytanie dotyczące wdrożenia Tensorflow LSTM. Obecnie istnieje kilka implementacje w TF, ale używam:
cell = tf.contrib.rnn.BasicLSTMCell(n_units)
- gdzie n_units jest kwotę 'równoległy' LSTM-Cells.
Następnie, aby moje wyjście wzywam:
rnn_outputs, rnn_states = tf.nn.dynamic_rnn(cell, x,
initial_state=initial_state, time_major=False)
- gdzie (jak
time_major=False
)x
ma kształt(batch_size, time_steps, input_length)
- gdzie
batch_size
jest mój batch_size - gdzie
time_steps
jest kwota timesteps mój RNN przejdzie - gdzie
input_length
jest długością jednego z swoich wektorów wejściowych (wektora wprowadzonego do sieci, w jednym konkretnym kroku to na jednej konkretnej partii)
się spodziewać rnn_outputs się kształt (batch_size, time_steps, n_units, input_length)
jak nie podano innego formatu wyjściowego. Dokumentacja z nn.dynamic_rnn
mówi mi, że wyjście ma kształt (batch_size, input_length, cell.output_size)
. Dokumentacja tf.contrib.rnn.BasicLSTMCell
ma właściwość output_size
, która jest domyślnie ustawiona na n_jednostki (ilość komórek LSTM, których używam).
Czy każda komórka LSTM generuje tylko skalar dla każdego określonego czasu? Spodziewam się, że wyprowadzi wektor długości wektora wejściowego. Wygląda na to, że nie rozumiem tego teraz, więc jestem zdezorientowany. Czy możesz mi powiedzieć, czy tak jest w tym przypadku, czy w jaki sposób mogę to zmienić, aby wyprowadzić wektor wielkości wektora wejściowego na pojedynczą komórkę LSTM?
W jaki sposób doszliście do wniosku, że każda komórka LSTM generuje tylko skalar dla każdego określonego czasu? – jabalazs
Czy możesz zamieścić istotę lub większy fragment kodu, abyśmy mogli zobaczyć/uruchomić kod w celu lepszego zrozumienia kontekstu? –