NameError:name' image'没有定义

时间:2018-06-18 09:14:41

标签: python python-3.x keras jupyter-notebook classification

当我尝试运行预训练的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()

1 个答案:

答案 0 :(得分:5)

来自image您只导入ImageDataGenerator,但您还需要其他属性, 更好地改变它

from keras.preprocessing.image import ImageDataGenerator

from keras.preprocessing import image
# and use 
# image.ImageDataGenerator()
# image.load_img()