我想实现一个具有4个lstm层和1个密集层的lstm模型。我知道可以通过tf.nn.dynamic_rnn()
来实现多层lstm,但是我必须对每个lstm层进行编码。因为之后,我需要在每个lstm层之后添加一个附加层。 api tf.nn.dynamic_rnn()
一起实现了所有lstm层,但我无法获得每一层的输出。所以这是我的问题:
tf.nn.dynamic_rnn()
来实现多lstm模型outputs
之后的序列中每次获得相同的权重和偏差的密集层呢?这是我的多层lstm模型示例的一部分:
with tf.variable_scope(name_layer):
cell_list = []
for i in range(0, n_layers_lstm):
cell_list.append(LSTMCell())
lstm_cell = tf.contrib.rnn.MultiRNNCell(cell_list, state_is_tuple=True)
_init_state = lstm_cell.zero_state(self.cfg['basic'].getfloat('batch_size'), dtype=tf.float32)
# outputs: [batch_size, length_seq, hidden_size]
# state: [batch_size, hidden_size]
outputs, states = tf.nn.dynamic_rnn(lstm_cell, y, initial_state=_init_state, dtype=tf.float32, time_major=False)
# Dense layer:
# How to achieve a dense layer with the same weight for each time step in concise code?
P,您可以将模型理解为lstm-dense-lstm-dense-lstm-dense模型。