【问题标题】:Keras Model: Same array that is used for model.fit is not being processed in model.predictKeras 模型:用于 model.fit 的相同数组未在 model.predict 中处理
【发布时间】:2018-11-12 17:26:12
【问题描述】:

我有一个模型:

model.add(Dense(16, input_dim = X.shape[1], activation = 'tanh'))
model.add(Dropout(0.2))
model.add(Dense(8, activation = 'relu'))
model.add(Dropout(0.2))
model.add(Dense(4, activation = 'tanh'))
model.add(Dropout(0.2))
model.add(Dense(2, activation = 'relu'))
model.add(Dropout(0.2))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mae'])

在 Model.evaluvate 期间,它与“X”的输入配合得很好:

history = model.fit(X, Y, validation_split=0.2, epochs=10, callbacks=   [PrintDot()], batch_size=10, verbose=0)

但是在我使用 X[1] 进行预测时,它会引发错误:

ValueError: Error when checking input: expected dense_8_input to have shape (500,) but got array with shape (1,)

但是 X[1].Shape 是 (500,):

X[1].shape
--> (500,)

我该如何解决这个错误,感谢任何帮助

【问题讨论】:

  • 尝试将其设为 (1,500),正如预测的那样(amount_of_items, features)
  • 谢谢,成功了!

标签: python numpy tensorflow keras deep-learning


【解决方案1】:

Keras model.predict 期望接收 (amount_of_items, features) 的输入。

因此,即使尝试预测单个样本,您也必须将其重塑为 (1, features) ,在您的情况下为 (1, 500)

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2021-02-13
    • 1970-01-01
    • 2021-03-04
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多