Я тренировал модель Keras, однако мне сложно прогнозировать ее. Мой входной массив имеет форму (400,2)
, а выходной массив имеет форму (400,1)
. Теперь, когда я передаю аргумент array([1,2])
в функцию model.predict()
, я получаю следующую ошибку:
ValueError: Error when checking input: expected dense_1_input to have shape (2,) but got array with shape (1,).
Что бессмысленно, поскольку shape(array([1,2])) = (2,)
и, следовательно, функция model.predict
должна принимать его как допустимый ввод.
Напротив, когда я передаю массив формы (1,2)
, он работает чисто. Так есть ли ошибка в реализации Keras?
Моя модель выглядит следующим образом:
from keras.models import Sequential
from keras.layers import Dense
from keras import optimizers
import numpy as np
data = np.random.rand(400,2)
Y = np.random.rand(400,1)
def base():
model = Sequential()
model.add(Dense(4,activation = 'tanh', input_dim = 2))
model.add(Dense(1, activation = 'sigmoid'))
model.compile(optimizer = optimizers.RMSprop(lr = 0.1), loss = 'binary_crossentropy', metrics= ['accuracy'])
return model
model = base()
model.fit(data,Y, epochs = 10, batch_size =1)
model.predict(np.array([1,2]).reshape(2,1)) #Error
model.predict(np.array([1,2]).reshape(2,)) #Error
model.predict(np.array([1,2]).reshape(1,2)) #Works