当维数匹配时Keras Input会引发值错误

时间:2020-02-13 15:53:57

标签: python keras

我开始开发模型,并陷入尺寸问题。我的X_train和Y_train是形状为(65337, 19)

的numpy数组
Input_1= Input(shape=(19,))
x = Dense(100, activation='relu')(Input_1)

out1 = Dense(1,  activation='linear')(x)
out2 = Dense(1,  activation='linear')(x)
...
out19 = Dense(1, activation = 'linear')(x)
model = Model(inputs=Input_1, outputs=[out1,out2,out3,out4,out5,out6,
                                  out7,out8,out9,out10,out11,out12,
                                  out13,out14,out15,out16,out17,out18,out19])
model.compile(optimizer = "rmsprop", loss = 'mse')
model.fit(X_train,y_train,epochs=5)

运行此命令时,出现值错误:

ValueError:检查模型目标时出错:Numpy数组列表 您传递给模型的信息不是模型期望的大小。 预计将看到19个数组,但得到以下列表1 数组:

在这里查看其他问题,似乎使用.fit(np.array(X_train) , np.array(y_train)可以帮助一些问题,但是我遇到了相同的错误(这很有意义,因为它告诉我我有一个数组)。

1 个答案:

答案 0 :(得分:1)

您期望获得19种不同的输出,因此您需要使用标签数组的19个切片将其馈送到您的网络:

model.fit(X_train,[y_train[:,0], y_train[:,1], y_train[:,2],[...], y_train[:, 18]] , epochs=5)