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

神经网络实现地震预测时Model.predict报numpy.ndarray不可调用错误求助

问题原因及解决办法

1. 直接报错的修复方案

  • 你遇到的TypeError: 'numpy.ndarray' object is not callable错误,直接原因是model.predict不再是Keras模型自带的预测方法,被你在之前的运行过程中误赋值成了numpy数组。你只需要重启Jupyter内核,按顺序重新运行所有代码即可解决该报错。
  • 后续编写代码时注意不要写model.predict = xxx这类赋值语句,避免覆盖模型自带的方法名。

2. 代码逻辑其他问题修复

你当前的神经网络配置完全不匹配该地震损害等级预测任务的要求,即使修复了上述报错也无法得到正确结果,需要做如下调整:

  • 该任务是3分类任务(损害等级分为1/2/3三类),不是二分类或回归任务:
    1. 输出层改为Dense(3, activation='softmax')
    2. 损失函数改为sparse_categorical_crossentropy(如果使用整数形式的原始标签无需额外编码),如果提前把标签做了独热编码则改用categorical_crossentropy
    3. 编译模型时建议加入metrics=['accuracy']方便观测训练过程中的分类准确率
  • 当前网络的拟合能力不足,两层4神经元的隐藏层不足以处理39维特征的分类任务,建议调整隐藏层规格,示例如下:
model = Sequential()
model.add(Dense(32, activation = 'relu'))
model.add(Dense(16, activation = 'relu'))
model.add(Dense(3, activation='softmax'))
model.compile(loss='sparse_categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
  • 你代码里将测试集的变量命名为test_labels存在歧义,实际读取的是测试特征文件test_values.csv,建议修改命名避免后续逻辑混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:06:00