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

Keras神经网络训练nb_epoch参数报错及输入维度不匹配如何解决?

问题排查与解决方案

第一个报错:fit() got an unexpected keyword argument 'nb_epoch'

  • 原因:Keras 2.0版本后已经废弃了老版本的nb_epoch参数,迭代次数参数统一修改为epochs,你尝试的nb_epochs、epoch均不是合法参数,所以会报错。
  • 修复方法:直接将fit方法的参数改为epochs=100即可解决该问题。

第二个报错:ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 11 but received input with shape (None, 1)

  • 原因:你的神经网络第一层全连接层指定了input_dim = 11,代表要求输入的每个样本包含11个特征,但你传入的训练集X_train的维度不匹配,每个样本仅包含1个特征。
  • 排查修复步骤:
    1. 先打印训练集特征维度确认问题:运行print(X_train.shape),符合第一层配置的正常输出应为(样本数量, 11),你当前的输出大概率为(样本数量, 1)或者一维结构(样本数量,)。
    2. 根据业务场景选择对应修复方案:
    • 如果你实际每个样本仅含1个特征:将第一层Dense的参数input_dim = 11修改为input_dim = 1即可。如果你的X_train是一维数组,还需要先调整维度:X_train = X_train.reshape(-1, 1)。
    • 如果你实际每个样本应该有11个特征:说明你在数据预处理、数据集拆分环节出现了错误,丢失了其余10个特征,需要回溯检查数据读取、特征工程、训练集测试集拆分的代码,确保X_train最终维度为(样本数, 11)。

额外注意事项

你当前的网络配置是二分类任务的配置(输出层sigmoid激活+二分类交叉熵损失),如果你的需求是预测连续的价格数值(回归任务),需要调整输出层和编译参数:

# 回归任务输出层,无激活函数默认使用linear线性激活
classifier.add(Dense(1, kernel_initializer = 'uniform')) 
# 编译时使用回归任务损失函数
classifier.compile(optimizer = 'adam', loss = 'mse', metrics = ['mae']) 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:18:01