Python 用Keras预测向量序列

Python 用Keras预测向量序列,python,keras,Python,Keras,给定995(1,4)个向量的序列,我想用Keras预测接下来的5(1,4)个向量 我的数据数组有形状(1000,1000,1,4),这是1000(1,4)个向量的1000个表示 我将这个数据数组子集为输入和输出,给出了形状的输入数组(1000995,1,4)和形状的输出数组(1000,5,1,4) 我使用了下面的代码,但是得到了一个与输出形状相关的错误,我不清楚如何构造模型中的最后一层来处理输出数组形状 从keras.models导入 从keras.layers导入稠密 X=np.数组(测试数据

给定995(1,4)个向量的序列,我想用Keras预测接下来的5(1,4)个向量

我的数据数组有形状(1000,1000,1,4),这是1000(1,4)个向量的1000个表示

我将这个数据数组子集为输入和输出,给出了形状的输入数组(1000995,1,4)和形状的输出数组(1000,5,1,4)

我使用了下面的代码,但是得到了一个与输出形状相关的错误,我不清楚如何构造模型中的最后一层来处理输出数组形状

从keras.models导入
从keras.layers导入稠密
X=np.数组(测试数据)[:,0:-5]
Y=np.数组(测试数据)[:,-5:]
印刷品(np.形状(X))
打印(np.形状(Y))
#创建模型
模型=顺序()
添加(密集(12,输入_shape=X.shape[1:],激活=relu'))
model.add(密集(8,activation='relu'))
model.add(密集型(4,激活='sigmoid'))
#编译模型
compile(loss='classifical_crossentropy',optimizer='adam',metrics=['accurity'])
#拟合模型并使用10%的数据进行验证
模型拟合(X,Y,历次=50,批次大小=10,验证分割=0.1)
#评估模型的准确性
分数=模型。评估(X,Y)
打印(“\n%s:%.2f%%”%(model.metrics_名称[1],分数[1]*100))
我收到的输出是一个错误,似乎最后一层期望的形状与输入数据
X
相同,而不是输出数据
Y
,如下所示:

(1000, 995, 1, 4)
(1000, 5, 1, 4)

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-45-ce15e7f4b527> in <module>()
     24 
     25 # Fit the model and use 10% of the data for validation
---> 26 model.fit(X, Y, epochs=50, batch_size=10, validation_split=0.1)
     27 
     28 # evaluate the model on accuracy
编辑:

问题在于输出阵列的形状应等于Y中的特征数,即

model = Sequential()
model.add(Dense(12, input_shape=X.shape[1:], activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(Y.shape[1], activation='sigmoid'))
X和Y可以按照以前的方式初始化


希望这有帮助。

这给了我一个不同的错误:
ValueError:输入数组的样本数应该与目标数组的样本数相同。找到995个输入样本和5个目标样本。
X和Y的形状现在是:
(9951000,1,4)
(51000,1,4)
谢谢,有机会测试后我会报告的
model = Sequential()
model.add(Dense(12, input_shape=X.shape[1:], activation='relu'))
model.add(Dense(8, activation='relu'))
model.add(Dense(Y.shape[1], activation='sigmoid'))