【问题标题】:AttributeError: 'function' object has no attribute 'preprocess_input'AttributeError:“函数”对象没有属性“预处理输入”
【发布时间】:2019-12-17 23:04:00
【问题描述】:

我想试试 MobileNetV2 的预测。我总是收到一条错误消息,但我不知道要更改什么。

import keras
from keras import backend as K
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing import image
from keras.applications import imagenet_utils
from keras.layers import Dense,GlobalAveragePooling2D
from keras.applications.mobilenetv2 import decode_predictions
from keras.applications.mobilenetv2 import MobileNetV2
from keras.applications.mobilenetv2 import preprocess_input
import numpy as np
from IPython.display import Image
from keras.optimizers import Adam

mobilenet = MobileNetV2()

def process_image(img_path):
    img = image.load_img(img_path, target_size=(224, 224))
    img_array = image.img_to_array(img)
    img_array = np.expand_dims(img_array, axis=0)
    pImg = MobileNetV2.preprocess_input(img_array)
    return pImg

process_image(IMG_PATH)

这是错误消息。

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-29-6cdb09c1b552> in <module>()
----> 1 process_image('IMG_PATH')

<ipython-input-28-1b1187d4c25c> in process_image(img_path)
      3     img_array = image.img_to_array(img)
      4     img_array = np.expand_dims(img_array, axis=0)
----> 5     pImg = MobileNetV2.preprocess_input(img_array)
      6     return pImg

AttributeError: 'function' object has no attribute 'preprocess_input'

也许有人可以帮助我。

【问题讨论】:

  • 你试过pImg = mobilenet.preprocess_input(img_array)吗?
  • 我在文档中看不到 MobileNetV2 的属性 preprocess_input
  • 是的,因为MobileNetV2 是包keras.applications.mobilenetv2 的一个函数,使用&gt;&gt; from keras.applications import mobilenetv2 然后运行mobilenetv2.preprocess_input(img_array)

标签: python keras neural-network deep-learning mobilenet


【解决方案1】:

如果您查看keras_applications/mobilenet_v2,您会发现 MobilNetV2 没有属性 preprocess_input

您可以从 mobilenet_v2 导入 preprocess_input:

from keras.applications.mobilenetv2 import preprocess_input

那么你可以使用:

pImg = preprocess_input(img_array)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 2020-02-29
    • 1970-01-01
    • 2017-11-16
    • 2022-01-14
    • 2019-05-10
    • 2021-07-21
    相关资源
    最近更新 更多