如何使用TensorFlow堆叠LSTM图层

sub*_*bie 4 lstm tensorflow

我所拥有的是以下内容,我认为这是一个具有一个隐藏LSTM层的网络:

# Parameters
learning rate = 0.001
training_iters = 100000
batch_size = 128
display_step = 10

# Network Parameters
n_input = 13
n_steps = 10
n_hidden = 512
n_classes = 13

# tf Graph input
x = tf.placeholder("float", [None, n_steps, n_input])
y = tf.placeholder("float", [None, n_classes])

# Define weights
weights = {
    'out' : tf.Variable(tf.random_normal([n_hidden, n_classes]))
}
biases = {
    'out' : tf.Variable(tf.random_normal([n_classes]))
}
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试使用TensorFlow构建LSTM网络来预测功耗.我一直在寻找一个很好的例子,但我找不到任何带有2个隐藏LSTM层的模型.这是我想要构建的模型:

1个输入层,1个输出层,2个隐藏的LSTM层(每个中有512个神经元),时间步长(序列长度):10

任何人都可以指导我使用TensorFlow构建它吗?(从定义权重,构建输入形状,培训,预测,使用优化器或成本函数等),任何帮助将非常感激.

非常感谢你提前!

cha*_*255 6

以下是我在使用GRU单元格的翻译模型中的操作方法.您只需用LSTM替换GRU即可.只需使用tf.nn.rnn_cell.MultiRNNCell,它应该包含多个单元格的列表.在下面的代码中,我手动展开它,但你可以传递给它tf.nn.dynamic_rnn或者tf.nn.rnn也可以.

y = input_tensor
with tf.variable_scope('encoder') as scope:
    rnn_cell = rnn.MultiRNNCell([rnn.GRUCell(1024) for _ in range(3)])
    state = tf.zeros((BATCH_SIZE, rnn_cell.state_size))
    output = [None] * TIME_STEPS
    for t in reversed(range(TIME_STEPS)):
        y_t = tf.reshape(y[:, t, :], (BATCH_SIZE, -1))
        output[t], state = rnn_cell(y_t, state)
        scope.reuse_variables()
    y = tf.pack(output, 1)
Run Code Online (Sandbox Code Playgroud)