【问题标题】:How to One input and Three output LSTM tensorflow如何一输入三输出 LSTM tensorflow
【发布时间】:2018-03-13 10:50:57
【问题描述】:

我正在尝试学习 LSTM,但我有一个困惑,如果我有一个单词列表,例如:

vocabulary=['hello','how','are','you','tell','me','something','about','yourself']

现在我想给出一个输入:

ex :  input_data = ['hello']

我希望它应该预测接下来的三个单词:

ex :  output_data = ['how','are','you']

所以我想通过随机选择 4 个单词来训练 LSTM,然后将该单词列表分块为 1 作为输入,其余 3 作为输出。

我们举一个简单的例子:

ex :  input_data = ['hello']


ex :  output_data = ['how','are','you']

将它们转换成一个热点之后:

final_input=[]
for i in x_data:
    matrix = [0] * len(main_vocabulary)
    matrix[main_vocabulary.index(i)]=1
    final_input.append(matrix)


output=[main_vocabulary.index(i) for i in y_data]

print(final_input)

print(output)

[[1, 0, 0, 0, 0, 0, 0, 0, 0]]
[1, 2, 3]

现在我的困惑是如何将这种格式提供给 LSTM?

因为我读过 LSTM 输入和输出向量的形状应该是一样的,是真的吗?

input_placeholder=tf.placeholder(tf.float32,[None,1,9])
output_placeholder=tf.placeholder(tf.int32,[None,3])

但我认为这不正确,请建议如何喂养。

rnn.BasicLSTMCell(num_units=?,state_is_tuple=True) 中的 num_units 的数量是多少

我在想什么 num_units 应该与数据列相同,所以这里应该是 9 。

【问题讨论】:

    标签: python tensorflow keras lstm rnn


    【解决方案1】:

    从概念上讲,最简单的方法是序列到序列 RNN。应该也可以使用普通的 RNN,尽管输入和输出上的可变长度对编程来说很繁琐(如果您想在将来更改它们)。

    查看http://karpathy.github.io/2015/05/21/rnn-effectiveness/(标准 RNN 介绍博客 - 我相信您之前已经看过)并注意说明各种 RNN 类型的图表。你想要一个一对多的配置。

    说实话,听起来你可能有点过头了。我建议尝试通过学习https://github.com/guillaume-chevalier/seq2seq-signal-prediction来了解 RNN 的基础知识

    【讨论】:

      猜你喜欢
      • 2016-06-22
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      相关资源
      最近更新 更多