AttributeError: у объекта 'function' нет атрибута 'preprocess_input'

Я хочу попробовать прогнозы 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'

Может быть, кто-то может мне помочь.

1 ответ

Решение

Если вы загляните в keras_applications / mobilenet_v2, вы обнаружите, что MobilNetV2 не имеет атрибута preprocess_input

Вы можете импортировать preprocess_input из mobilenet_v2:

from keras.applications.mobilenetv2 import preprocess_input

тогда вы можете использовать:

pImg = preprocess_input(img_array)
Другие вопросы по тегам