gpt4 book ai didi

machine-learning - Tensorflow - 预测序列 : what is X and Y?

转载 作者:行者123 更新时间:2023-11-30 08:43:45 24 4
gpt4 key购买 nike

我有一个张量,需要使用 tensorflow LSTM/RNN 预测序列中的下一个元素,同时考虑到前 5 个元素。我应该向 X 和 Y 输入什么?

从 1 2 3 4 5,我想预测 6

假设我的输入序列X是:

X = 1 2 3 4 5 
6 7 8 9 10
11 12 13 14 15
...

我的 Y 会是:

Y = 2 3 4 5 6 
7 8 9 10 11
12 13 14 15 16
... ?

或者我应该喂它:

X = 1 2 3 4 5 
2 3 4 5 6
3 4 5 6 7
....

我的 Y 会是:

Y = 6
7
8
... ?

或者 TensorFlow 会自动执行此操作吗?

受教程启发,我现在使用第一种方法:

    x = tf.placeholder(tf.int32, [None, num_steps], name='input_placeholder')
y = tf.placeholder(tf.int32, [None, num_steps], name='labels_placeholder')

rnn_outputs = tf.reshape(rnn_outputs, [-1, state_size])
y_reshaped = tf.reshape(y, [-1])
logits = tf.matmul(rnn_outputs, W) + b
predictions = tf.nn.softmax(logits)
total_loss = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=y_reshaped))

如果我要求预测(在实际代码中,时间步长为 16,类数为 14313,对此表示抱歉):

        prevSlice = np.array([[1, 2 , 3 , 4, 5, 6 ,7, 8, 9 ,10, 11, 12, 13, 14, 15, 16]], dtype=np.string_)
feed_dict={g['x']: prevSlice}
preds, state = sess.run([g['preds'],g['final_state']], feed_dict)

我得到的 15 个预测太多了。或者说我该如何解读这些?我不需要预测接下来的 16 个切片,只需预测下一个切片。

enter image description here

最佳答案

由于 LSTM 执行序列到序列预测,这是否意味着您将获得一个 batch_size 长度的序列预测器的输出而不是单个时间步长。

所以简而言之,您将得到与预测大小相同的序列。

编辑:

def predict_point_by_point(model, data):
#Predict each timestep given the last sequence of true data, in effect only predicting 1 step ahead each time
predicted = model.predict(data)
predicted = np.reshape(predicted, (predicted.size,))
return predicted

您可以按照这些思路做一些事情,并为每个 len(timestep) 添加一个移动窗口 您将其输入到模型中,以说明添加的一个时间步长,以便您一次输出一个。

关于machine-learning - Tensorflow - 预测序列 : what is X and Y?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com