standardmäßig funktionieren dynamic_rnn
Ausgänge nur versteckte Zustände (wie m
bekannt) für jeden Zeitpunkt die wie folgt erhältlich:Tensorflow: Wie man intermediate Zellenzustände (c) von LSTMCell mit dynamic_rnn erhalten?
cell = tf.contrib.rnn.LSTMCell(100)
rnn_outputs, _ = tf.nn.dynamic_rnn(cell,
inputs=inputs,
sequence_length=sequence_lengths,
dtype=tf.float32)
Gibt es eine Möglichkeit Zwischen bekommen (nicht abschliessend) Zellzustände (c
) in Zusatz?
A tensorflow
Beitrag mentions, dass es mit einer Zelle Wrapper erfolgen:
class Wrapper(tf.nn.rnn_cell.RNNCell):
def __init__(self, inner_cell):
super(Wrapper, self).__init__()
self._inner_cell = inner_cell
@property
def state_size(self):
return self._inner_cell.state_size
@property
def output_size(self):
return (self._inner_cell.state_size, self._inner_cell.output_size)
def call(self, input, state)
output, next_state = self._inner_cell(input, state)
emit_output = (next_state, output)
return emit_output, next_state
aber es scheint nicht zu funktionieren. Irgendwelche Ideen?