为keras重塑数组

时间:2018-03-12 16:19:01

标签: python numpy keras

我有一个数据数组,其中包含3个特征的二维数组: [[1,2,3],[4,5,6]]我希望我重新塑造它以适应带有重塑(1,2,3)的keras以获得类似的数组:

trainX = [[[1,2,3], [4,5,6]]].

训练阵列几乎相同:

trainY = [[4,5,6], [7,8,9]]

我想将它传递给我的模特。当我这样传递时:

model.add(LSTM(32, input_shape=(2,3)))
model.add(Dense(3))
model.fit(trainX, trainY)

它表示目标样本的数量与输入样本不同。有些东西我不明白,但我不知道在哪里。

你能帮帮我吗? :d

2 个答案:

答案 0 :(得分:1)

这应该有所帮助:

import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6]])
trainX = a.reshape(1, 2, 3)
# [[[1 2 3]  [4 5 6]]]                                                

答案 1 :(得分:0)

您缺少标签尺寸。

import numpy as np
trainX = [[[1,2,3],[4,5,6]]]
trainY = [[4,5,6],[7,8,9]]

np.array(trainX).shape # This equals (1,2,3)
np.array(trainY).shape # This equals (2,3)

根据您的转换方式,您可以

np.array(trainX).reshape(2,3)

np.array(trainY).reshape(1,2,3)

此外,您的模型input_shape正在(2,3),如果您需要(1,2,3),您应该更改它。