Keras中new_model.predict_classes报NameError的解决求助
解决Keras中
predict_classes报NameError的问题 可能的原因及解决步骤
1. 代码执行上下文不一致
你执行new_model.predict()时new_model变量有效,但执行predict_classes时,可能存在以下情况:
- 在Jupyter Notebook等交互式环境中切换了未定义
new_model的代码单元格 - 之前的代码块对
new_model进行了重新赋值或删除操作 - 解决:重新运行定义/加载
new_model的代码块,确保执行predict_classes前,该变量处于当前环境的有效作用域内。
2. Keras版本兼容性问题
predict_classes方法在Keras 2.4.0之后(尤其是TensorFlow 2.x集成的Keras版本)已被官方移除,你的手册示例可能基于旧版Keras。替代方案是用np.argmax()手动获取预测类别:
import numpy as np # 先获取预测概率 predict_probs = new_model.predict(x_test[0:1]) # 取概率最大值对应的类别索引 predicted_class = np.argmax(predict_probs, axis=-1) print(predicted_class) # 预期输出 array([3])
3. 变量名拼写错误
检查执行predict_classes时的变量名是否与predict时完全一致,比如是否误写为newmodel、NewModel等大小写或拼写错误的形式。
- 解决:仔细核对变量名的拼写和大小写,确保完全匹配。
内容的提问来源于stack exchange,提问作者Ahmed Diaz Ravan
相关产品推荐
相关产品推荐

