如何在Tensorflow中为视频序列构建多层LSTM?

时间:2018-02-26 01:48:32

标签: video tensorflow lstm multi-layer

我想在tensorflow中构建一个3层LSTM用于视频分析。我在网上看了一些例子,但仍然令人困惑。任何人都可以帮助编写一个简洁的代码片段来执行以下任务:

输入:240X320尺寸的5个连续视频帧

输出:5个标量

非常感谢你。

1 个答案:

答案 0 :(得分:1)

基本上,您必须为序列准备帧。您应该有一个矢量,例如(Batch_size,sequence_length = 5,features = 240 * 320)。然后使用以下命令创建3个堆叠的LSTM:

layer1 = rnn.BasicLSTMCell(number_lstm_units)
layer2 = rnn.BasicLSTMCell(number_lstm_units)
layer3 = rnn.BasicLSTMCell(number_lstm_units)

对单元进行分组并将其传递到Multi RNN单元:

cells = [layer1, layer2, layer3]
multirnn = rnn.MultiRNNCell(cells)

然后使用扁平化的特征向量,您只需通过LSTM传递每个元素

for feature in your_flattened_vector:
    lstm_output, state = cell(feature,state)

您将获得与输入大小相同的输出。

有关其他信息,请检查API here

希望有帮助。