我有几个问题,但是从我的数据集开始吧
我的数据集由序列组成,序列中的每个时间步都有4个特征。像这样
S0:
t0 -> f1, f2, f3, f4
t1 -> f1, f2, f3, f4
t2 -> f1, f2, f3, f4
t3 -> f1, f2, f3, f4
S1:
t0 -> f1, f2, f3, f4
t1 -> f1, f2, f3, f4
t2 -> f1, f2, f3, f4
t3 -> f1, f2, f3, f4
t4 -> f1, f2, f3, f4
t5 -> f1, f2, f3, f4
t6 -> f1, f2, f3, f4
t7 -> f1, f2, f3, f4
etc...
如您所见,每个序列的长度都是可变的,并且变异性很大(从10-500不等)
我的目标是输入t0并使用每个预测来辅助下一个预测,直到达到目标为止。
i0 -> [t0] - predicts > t1
i1 -> [t0, t1] - predicts > t2
i2 -> [t0, t1, t2] - predicts > t3
and so on
我不确定如何在Keras中训练数据。我的“ x”目前有以下内容
[ [[f1, f2, f3, f4], [f1, f2, f3, f4]] , [[f1, f2, f3, f4]] ] ...
问题:
编辑 3.有点离题,但是否可以有一个开始时间步长和一个结束时间步长,然后在两者之间填写时间步长?
答案 0 :(得分:0)
如何在Keras中处理可变长度序列?
好喀拉拉邦有很好的方法来处理可变长度的序列。例如,如果您将LSTM层用于序列预测,则可以将None
设置为输入形状的时间维度
model.add(LSTM(num_units,input_shape=(None, data_dim));
如何格式化“ y”个预期输出数据?
您的y
可以看作是x
向左移动一个单位。
例如
# if
x = [t0,t1,t2,t3,t4]
#then
y = [t1,t2,t3,t4]
如果x
和y
都是numpy数组,则可以从y
中获取x
,如下所示。
y = x[1:]
由于x的最后一个值将不会用于预测,因此应将其删除。
x = x[:-1]