无法从“keras.preprocessing.image”导入名称“load_img”

Sat*_*wat 9 python tensorflow tensorflow2.0

为什么我会遇到这个问题?我可以从 导入图像模块kera.preprocessing。但无法导入image_dataset_from_directory。我的 TensorFlow 版本是 2.9.1,所以我不处理旧版本,例如ImportError: Cannot import name 'image_dataset_from_directory' from 'tensorflow.keras.preprocessing' (unknown location)

# make a prediction for a new image.
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.models import load_model

# load and prepare the image
def load_image(filename):
    # load the image
    img = load_img(filename, target_size=(224, 224))
    # convert to array
    img = img_to_array(img)
    # reshape into a single sample with 3 channels
    img = img.reshape(1, 224, 224, 3)
    # center pixel data
    img = img.astype('float32')
    img = img - [123.68, 116.779, 103.939]
    return img

# load an image and predict the class
def run_example():
    # load the image
    img = load_image('test.jpg')
    # load model
    model = load_model('final_model.h5')
    # predict the class
    result = model.predict(img)
    print(result[0])

# entry point, run the example
run_example()
Run Code Online (Sandbox Code Playgroud)

错误

from keras.preprocessing.image import load_img
ImportError: cannot import name 'load_img' from 'keras.preprocessing.image'
Run Code Online (Sandbox Code Playgroud)

小智 29

keras.preprocessingAPI 在 Tensorflow 2.9.1 中已弃用。请改用如下方式tf.keras.utils导入load_img

from tensorflow.keras.utils import load_img
Run Code Online (Sandbox Code Playgroud)

要从目录加载数据集,请使用 tensorflow.keras.utils.image_dataset_from_directory. 欲了解更多详情,请参阅此链接


Sun*_*hin 6

from tensorflow.keras.preprocessing.image import load_img
Run Code Online (Sandbox Code Playgroud)


小智 5

代替

    from keras.preprocessing.image import load_img
Run Code Online (Sandbox Code Playgroud)

    from keras_preprocessing.image import load_img
Run Code Online (Sandbox Code Playgroud)