如何通过``每个图层''在张量流中实现多层lstm模型?

时间:2019-07-20 07:28:55

标签: tensorflow lstm recurrent-neural-network

我想实现一个具有4个lstm层和1个密集层的lstm模型。我知道可以通过tf.nn.dynamic_rnn()来实现多层lstm,但是我必须对每个lstm层进行编码。因为之后,我需要在每个lstm层之后添加一个附加层。 api tf.nn.dynamic_rnn()一起实现了所有lstm层,但我无法获得每一层的输出。所以这是我的问题:

  • 如何通过每一层而不是直接调用tf.nn.dynamic_rnn()来实现多lstm模型
  • 与此同时,模型中的所有输出(顺序不同的时间)都受到关注。那么如何轻松地在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模型。

0 个答案:

没有答案