TypeError: Forex () принимает от 2 до 5 позиционных аргументов, но было дано 10 - PullRequest
0 голосов
/ 12 марта 2019

Запуск модели с 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,)

1 Ответ

0 голосов
/ 13 марта 2019

Что я понимаю, так это то, что у вас есть модель, представляющая собой график, состоящий из 9 других моделей. Итак, у вас есть 9 входов и 9 выходов. каждый вход имеет размерность (9216,).

Когда вы подходите под вашу модель, train1,train2,...,train9 - это входные данные для каждой из этих 9 моделей. Поэтому имеет смысл, что в прогнозе у вас будет одинаковое количество входов, я имею в виду train1, train2, ..., train9. Когда вы пытаетесь использовать train1 [0], вы хотите получить только один элемент тензорного размера (9216,), что неверно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...