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