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

如何使用Keras加载图片?解决load_img属性不存在报错

解决Keras加载图片报错:AttributeError: module 'keras.preprocessing.image' has no attribute 'load_img'

报错原因

这个错误是因为Keras版本更新后,load_img函数的位置被调整了——旧版本里它在keras.preprocessing.image模块下,新版本已经移至其他路径,也可以直接用PIL库替代。

三种解决办法

1. 改用TensorFlow Keras的官方路径(推荐)

如果你的代码基于TensorFlow集成的Keras(即tf.keras),直接修改导入和调用逻辑:

  • 导入语句改为:from tensorflow.keras.utils import load_img
  • 把原代码中的img = image.load_img(img_path)替换成img = load_img(img_path)

2. 用PIL库直接加载图片

如果不想调整Keras相关导入,直接用PIL的Image.open替代,先确保安装Pillow(执行pip install pillow):

  • 导入语句:from PIL import Image
  • 替换加载代码:img = Image.open(img_path)

3. 降级Keras到旧版本

如果非要保留原有代码结构,可以把Keras降级到2.8.x版本:

pip install keras==2.8.0

修改后的完整示例代码

from tensorflow.keras.utils import load_img
from PIL import Image
import numpy as np

def predictImage(img_path='Normal2.jpg', arrayImg=None, printData=True):
    crops = []

    if arrayImg is None:
        # 替换原load_img调用
        img = load_img(img_path)
        crops = np.array(getCropImgs(img, needRotations=False), dtype=np.float16)
        crops /= 255.0

    Image.fromarray(np.array(crops[2], dtype=np.uint8), "RGB").show()

    classes = ["亲和型", "接近型", "过度型", "正常型"]
    compProbs = [0, 0, 0, 0]

    for i in range(len(crops)):
        if printData:
            print(f"\n\n第{i + 1}个裁剪图预测结果:\n")

        _, probs = predict(crops[i], modelSavePath, showImg=False)

        for j in range(len(classes)):
            if printData:
                print(f"{classes[j]} : {round(probs[j], 4)}%")
            compProbs[j] += probs[j]

    if printData:
        print("\n\n所有裁剪图平均结果\n")

    for j in range(len(classes)):
        if printData:
            print(f"{classes[j]} : {round(compProbs[j] / len(crops), 4)}%")

注意事项

  • getCropImgs和predict是你自定义的函数,load_img和Image.open返回的都是PIL Image对象,和原代码兼容,无需修改这两个函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:30:28