【发布时间】:2019-03-12 19:14:46
【问题描述】:
在 Keras 功能 API 上运行具有 9 个输入和 9 个输出的模型。
该模型非常适合,但我在运行时遇到此错误model.predict
模型:(注意这只是两个输入,输出——我还有 7 个相似的层)
one= Input(shape=(9216,))
hidden1 = Dense(dense_one)(one)
hidden1 = BatchNormalization()(hidden1)
hidden1 = Activation('relu')(hidden1)
hidden1= Dropout(drop_out)(hidden1)
hidden1 = Dense(dense_two)(hidden1)
hidden1 = BatchNormalization()(hidden1)
hidden1 = Activation('relu')(hidden1)
hidden1= Dropout(drop_out)(hidden1)
hidden1 = Dense(dense_three)(hidden1)
hidden1 = BatchNormalization()(hidden1)
hidden1 = Activation('relu')(hidden1)
hidden1= Dropout(drop_out)(hidden1)
hidden1 = Dense(dense_four)(hidden1)
hidden1 = BatchNormalization()(hidden1)
hidden1 = Activation('relu')(hidden1)
hidden1= Dropout(drop_out)(hidden1)
output1 = Dense(500, activation='softmax')(hidden1)
two= Input(shape=(9216,))
hidden2 = Dense(dense_one)(two)
hidden2 = BatchNormalization()(hidden2)
hidden2 = Activation('relu')(hidden2)
hidden2= Dropout(drop_out)(hidden2)
hidden2 = Dense(dense_two)(hidden2)
hidden2 = BatchNormalization()(hidden2)
hidden2 = Activation('relu')(hidden2)
hidden2= Dropout(drop_out)(hidden2)
hidden2 = Dense(dense_three)(hidden2)
hidden2 = BatchNormalization()(hidden2)
hidden2 = Activation('relu')(hidden2)
hidden2= Dropout(drop_out)(hidden2)
hidden2 = Dense(dense_four)(hidden2)
hidden2 = BatchNormalization()(hidden2)
hidden2 = Activation('relu')(hidden2)
hidden2= Dropout(drop_out)(hidden2)
output2 = Dense(500, activation='softmax')(hidden2)
model = Model(inputs=[one, two...],
outputs=[output1, output2, output3,output4, output5, output6, output7,output8, output9])
这是我的拟合函数:
history = model.fit(x=[train1,train2,train3,train4,train5,train6,train7,train8,train9],
y=[y1,y2,y3,y4,y5,y6,y7,y8,y9], callbacks=callbacks,
batch_size=40, epochs=50, verbose=1, validation_split=0.1, shuffle=False)
它运行完美,我什至可以绘制历史。
那我就跑了:
model.predict(train1[1],train1[2],train1[3],train1[4],train1[5],train1[6],train1[7],train1[8],train1[9])
并得到上述错误。
我检查了每个输入的形状与模型可以接受的形状相似(每个 train1[x] 具有相同的形状)
编辑:
我试着跑了
model.predict([train1[1],train1[2],train1[3],train1[4],train1[5],train1[6],train1[7],train1[8],train1[9]])
并得到以下错误:
ValueError: Error when checking input: expected input_1 to have shape (9216,) but got array with shape (1,)
我也试过跑步:
model.predict(train1[1:9])
得到了
ValueError: Error when checking model input: the list of Numpy arrays that you are passing to your model is not the size the model expected. Expected to see 9 array(s), but instead got the following list of 8 arrays: [array([[255.]... –
我也试过跑步
model.predict(train1[1:10])
得到了
ValueError: Error when checking input: expected input_1 to have shape (9216,) but got array with shape (1,)
【问题讨论】:
-
您正在拟合 9 个示例,从 train1 到 train9,但您尝试在 train1[0] 上进行预测。你确定这不是一个错误?
-
不确定如何检查是否是错误
-
你能分享你的代码示例吗?很难理解模型的真正输入是什么
-
刚刚添加了示例代码
标签: machine-learning keras data-science predict