当我尝试运行预训练的MobileNet分类时,我在帖子标题中收到错误。我用来运行脚本的图像位于我的MobileNet-inference-images / American_Cam.jpg目录中。
任何帮助或建议都将不胜感激。
这是我的脚本,我的环境,错误追溯以及到目前为止所调查的内容。
import numpy as np
import keras
from keras import backend as K
from keras.layers.core import Dense
from keras.optimizers import Adam
from keras.metrics import categorical_crossentropy
from keras.preprocessing.image import ImageDataGenerator
from keras.models import Model
from keras.applications import imagenet_utils
from sklearn.metrics import confusion_matrix
import itertools
import matplotlib.pyplot as plt
%matplotlib inline
mobile =keras.applications.mobilenet.MobileNet()
def prepare_image(file):
img_path = 'MobileNet-inference-images/'
img = image.load_img(img_path + file, target_size=(224, 224))
img_array = image.img_to_array(img)
img_array_expanded_dims = np.expand_dims(img_array, axis=0)
return
keras.applications.mobilenet.preprocess_imput(img_array_expanded_dims)
preprocessed_image = prepare_image('MobileNet-inference-images/American_Cam.jpg')
predictions = mobile.predict(preprocessed_image)
results = imagenet_utils.decode_predictions(predictions)
results
我在Anaconda" custom"中运行python 3.6.1。 Juypter笔记本中的环境(64位)。
追溯是
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-40-90b9684f2691> in <module>()
----> 1 preprocessed_image = prepare_image('MobileNet-inference-images/American_Cam.jpg')
2 predictions = mobile.predict(preprocessed_image)
3 results = imagenet_utils.decode_predictions(predictions)
4 results
<ipython-input-32-c204346d1e63> in prepare_image(file)
1 def prepare_image(file):
2 img_path = 'MobileNet-inference-images/'
----> 3 img = image.load_img(img_path + file, target_size=(224, 224))
4 img_array = image.img_to_array(img)
5 img_array_expanded_dims = np.expand_dims(img_array, axis=0)
NameError: name 'image' is not defined
我看到同名here的错误,但这似乎是一个单独的问题(因为我正在封闭我的图片路径)。 Other posts提出了PIL问题。但是,如果我测试的是PIL是用简单的脚本操作的(例如下面的),我就不会收到PIL错误。
from PIL import Image
im = Image.open('MobileNet-inference-images/American_Cam.jpg')
im.show()
答案 0 :(得分:5)
来自image
您只导入ImageDataGenerator
,但您还需要其他属性,
更好地改变它
from keras.preprocessing.image import ImageDataGenerator
到
from keras.preprocessing import image
# and use
# image.ImageDataGenerator()
# image.load_img()