Проблема
Я использую API модели для создания сети Keras, которая принимает два входа и один выход. При обучении сети я получаю следующую ошибку:
Ошибка при проверке ввода модели: список массивов Numpy, которые вы передаете своей модели, не соответствует ожидаемому размеру модели. Ожидалось увидеть 2 массива (ов), но вместо этого получен следующий список из 1 массива:
Несмотря на эту ошибку, входной массив X имеет форму (2,8), а выходной y массив имеет форму (1,4).
То, что уже пробовали
Есть ряд похожих вопросов по SO, однако их решения в основном вращаются вокруг обеспечения X и y - это Numpy массивы. Как видно из моей реализации, я уже сделал это. Таким образом, я не верю, что это повторяющийся вопрос.
Реализация
Я определил модель следующим образом:
opt = Adam(lr = alpha)
input = Input(shape=(input_dim_,))
delta = Input(shape=[1])
l1 = Dense(units = 1024, input_dim = input_dim_, activation = "relu")(input)
l2 = Dense(units=512, activation="relu")(l1)
def loss_function (y,y_pred):
y_pred = K.clip(y_pred,1e-8,1-1e-8)
return K.sum(-y*K.log(y_pred)*delta)
if model_type == "actor":
out = Dense(units = output_dim_, activation="softmax")(l2)
model = Model(input=[input,delta], output = [out])
model.compile(loss = loss_function,optimizer=opt)
И поезд модель, выполнив следующие действия:
X = [s_t,delta]
X = np.array(X)
actor.fit(X,y,verbose=0)