Запуск модели с 9 входами и 9 выходами в Keras Functional API.
Модель подходит просто отлично, но я получаю эту ошибку, когда я запускаю
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])
И получаю ошибку выше.
Я проверил, что форма каждого входа похожа на формумодель может принять (каждый поезд1 [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,)