如何使用张量流将顺序数据的每个时间步骤的多个输入提供给递归神经网络?

时间:2018-02-13 08:46:46

标签: tensorflow

假设我有一个数据集:观察次数= 1000,每次观察是一个固定长度的序列= 10(比方说),并且序列中的每个点都有2个特征(数字)。我们如何将这些数据输入到张量流中的rnn? 任何小建议也被接受。感谢

1 个答案:

答案 0 :(得分:1)

根据您的描述,您的数据集是1000x10x2

看起来像这样:

import numpy as np

data=np.random.randint(0,10,[1000,10,2])

现在你说你的序列是固定大小所以你不需要填充,现在你必须只决定batch_size然后迭代

假设批量大小为5:

batch_size=5
iterations=int(len(train_dataset)//batch_size)

现在将您的输入提供给tensorflow lstm单元格,您的模型将是这样的:

以下是没有批量大小的示例

import numpy as np
import tensorflow as tf
from tensorflow.contrib import rnn

data=np.random.randint(0,10,[1000,10,2])
input_x=tf.placeholder(tf.float32,[1000,10,2])

with tf.variable_scope('encoder') as scope:
    cell=rnn.LSTMCell(150)
    model=tf.nn.dynamic_rnn(cell,inputs=input_x,dtype=tf.float32)

    output_,(fs,fc)=model



with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    output = sess.run(model, feed_dict={input_x: data})

    print(output)

如果你想使用批处理,那么你必须为LSTM重塑数据,或者你必须使用嵌入,因为LSTM需要等级3