You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言Keras构建DNN时predict报错:无适用方法于keras_training_history

问题解决方案

错误原因

你调用predict的对象错误:FIT_DNN1是fit()方法返回的训练历史对象(类为keras_training_history),这个对象仅存储训练过程中的损失、指标变化等信息,并没有predict方法。predict方法需要调用在训练好的模型对象上,也就是你定义的DNN_1。

核心修正

将预测部分的代码从:

pred <- FIT_DNN1 %>% predict(x_test_1)

改为:

pred <- DNN_1 %>% predict(x_test_1)

额外参数修正(避免训练行为异常)

你的训练代码里有两个参数拼写错误,虽然不触发当前报错,但可能导致训练不符合预期:

  • fit()中的epoch应改为epochs(复数形式)
  • batchsize应改为batch_size(下划线分隔)

修正后的拟合代码:

FIT_DNN1 <- DNN_1 %>% fit(
  x_train_1, y_train_1,
  epochs = 50,
  batch_size = 4,
  validation_data = list(x_test_1, y_test_1),
  verbose = 2
)

原理说明

Keras的fit()方法是原地训练模型:它会直接修改你定义的DNN_1对象,将训练得到的权重存入其中,同时返回一个记录训练过程的历史对象。因此训练完成后,直接使用原模型对象DNN_1进行预测即可。

内容的提问来源于stack exchange,提问作者erram_20589

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 10:45:19