导入错误:无法从'keras.preprocessing.image'中导入'img_to_array'名称。

10

我是新来的。我在这段代码中遇到了问题,

#Library
import numpy as np
import pickle
import cv2
from os import listdir
from sklearn.preprocessing import LabelBinarizer
from keras.models import Sequential
from keras.layers import BatchNormalization
from keras.layers.convolutional import Conv2D
from keras.layers.convolutional import MaxPooling2D
from keras.layers.core import Activation, Flatten, Dropout, Dense
from keras import backend as K
from keras.preprocessing.image import ImageDataGenerator
from keras.optimizers import Adam
from keras.preprocessing import image
#from tensorflow.keras.preprocessing.image import img_to_array
from keras.preprocessing.image import img_to_array
from sklearn.preprocessing import MultiLabelBinarizer
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt

我收到了一个错误

enter image description here

This code is from github link.
I'm using:
  1. Python 3.7.13
  2. TensorFlow 2.9
  3. OpenCV 4.5.5
  4. Keras 2.9.0
5个回答

28

Keras文档V2.9.0中,

在tf版本2.9.0中,img_to_array已经移至utils文件夹下

不再使用以下代码:

from keras.preprocessing.image import img_to_array

请改为使用以下代码:

from tensorflow.keras.utils import img_to_array


4

改为:

from keras.preprocessing.image import img_to_array

尝试:

from keras_preprocessing.image import img_to_array

请注意下划线(_)而不是点号(.)。

4

现在是2023年04月13日。 我的方法是: 尝试从keras.utils.image_utils导入img_to_array 很好!


1
你的回答目前不够清晰明了。请进行[编辑]以添加更多细节,以帮助他人理解你如何回答这个问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

0
从tensorflow.keras.utils中导入img_to_array。

0
要么这是一个不断变化的目标,要么这里的很多回答甚至没有尝试自己的解决方案。
截至2023年9月26日,在Colab上对我有效。
from keras.utils.image_utils import img_to_array, load_img 

上述代码在连接到TPU时可以正常工作,但是当我切换到GPU时,我需要改回以下代码: from keras.preprocessing.image import img_to_array, load_img这在Colab中似乎有些不一致。我没有意识到连接不同的运行时会改变可用的库版本。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接