【问题标题】:how to feed data in TensorFlow RNN?如何在 TensorFlow RNN 中输入数据?
【发布时间】:2017-11-29 08:35:20
【问题描述】:

这是我的数据格式:100x20、20 个特征和 100 行,这是 tensorflow RNN 输入数据格式:

x = tf.placeholder(tf.float32, [batch_size, step_size, input_size], name='input_placeholder')

我知道 input_size=20,我希望截断反向传播是 n 步,并且馈送一行一次。那么如何设置batch_size和step_size呢?那是step_size=n吗?

感谢您的回答。

【问题讨论】:

  • 我认为您需要更具体地说明您尝试过的内容、问题所在以及您的目标是什么。这些对我来说似乎都不清楚。
  • 我的数据格式是100x20,是2D,但是tensorflow输入格式是3D,我不知道这三个参数的意思[atch_size, step_size, input_size],我应该怎么重塑我的数据,谢谢。
  • 我认为您应该阅读有关 tensorflow 的教程,该教程将指导您更正常地解决您的问题。

标签: python batch-file tensorflow rnn


【解决方案1】:

我不清楚你的数据是什么。 你的意思是,它是 100 行,每行代表一个具有 20 个特征的样本?

或者每个样本有20个特征100次,数据集包含N个样本:N * 100 *20?

对于第一种情况,您应该将 20 个特征重塑为 step_size*input_size。例如:

X.reshape(-1,4,5)

对于第二种情况

X.reshape(-1,100,20)

【讨论】:

  • 感谢您的回复。是第一种情况,我想知道为什么要重塑 20 个特征。
  • Understanding LSTM NetworksRecurrent Neural Networks。我认为您在这里获得的特征可能与时间序列无关,但如果您想使用 RNN 模型,您应该使用 steps * features_at_this_step 重塑它们。因为 RNN 单元需要 x0,x1...xt(参见链接 1)。