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

无法导入Keras模块且tf.keras失效,程序报语法错误求助

解决Keras导入语法错误及tf.keras无法工作的问题

问题核心原因

  • 单独安装的Keras与TensorFlow版本不兼容:目前Keras已官方整合到TensorFlow生态中,单独安装的独立版Keras极易与TensorFlow内置的tf.keras产生依赖冲突。
  • 文件路径存在转义字符:Windows路径中的单反斜杠\会被Python解析为转义符号(如\t会被识别为制表符),导致图片读取失败。

分步解决方案

1. 替换导入语句为tf.keras

放弃使用独立版Keras的导入方式,改用TensorFlow内置的tf.keras模块,这是当前官方推荐的标准用法,可彻底规避版本冲突:

from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image

2. 修复图片路径问题

将Windows路径修改为以下两种安全格式之一:

  • 使用双反斜杠:img_path = 'F:\\test2\\IMG_4903.JPG'
  • 使用原始字符串(路径前加r):img_path = r'F:\test2\IMG_4903.JPG'

3. 清理环境依赖(可选,用于彻底解决冲突)

若调整导入后仍有异常,执行以下命令修复环境:

  • 卸载独立版Keras:pip uninstall keras -y
  • 升级TensorFlow至2.x以上版本:pip install --upgrade tensorflow

修改后的完整可运行代码

from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing import image
import numpy as np

# 加载模型
model = load_model('museum_exponat_classifier.h5')

# 图片路径(使用原始字符串避免转义问题)
img_path = r'F:\test2\IMG_4903.JPG'

# 加载并预处理图片
img = image.load_img(img_path, target_size=(224, 224))
img_array = image.img_to_array(img)
img_array = np.expand_dims(img_array, axis=0)
img_array = img_array / 255.0  # 像素归一化

# 执行预测
predictions = model.predict(img_array)
predicted_class = np.argmax(predictions)

# 类别映射(示例)
class_indices = {'class_1': 0, 'class_2': 1, 'class_3': 2, 'class_4': 3, 'class_5': 4, 'class_6': 5, 'class_7': 6}
classes = {v: k for k, v in class_indices.items()}

# 输出预测结果
predicted_label = classes[predicted_class]
print(f"预测类别: {predicted_label}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 00:05:04