TypeError: аргумент float () должен быть строкой или числом, а не 'модулем' - PullRequest
0 голосов
/ 28 марта 2020

Любая помощь будет оценена. Я пытаюсь «определить ожидаемую форму ввода» как часть учебной модели, которую вы можете найти на этом сайте: (https://machinelearningmastery.com/how-to-perform-object-detection-with-yolov3-in-keras/). Я использую следующий код:

# load and prepare an image
def load_image_pixels(filename, shape):
    # load the image to get its shape
    Image_file = image.load_img(filename)
    width, height = Image_file.size
    # load the image with the required size
    Image_file = image.load_img(filename, target_size=shape)
    # convert to numpy array
    Image_file = image.img_to_array(image)
    # scale pixel values to [0, 1]
    Image_file = Image_file.astype('float32')
    Image_file /= 255.0
    # add a dimension so that we have one sample
    Image_file = expand_dims(Image_file, 0)
    return Image_file, width, height

# define the expected input shape for the model
input_w, input_h = 416, 416
# define our new photo
filename = 'zebra.jpg'
# load and prepare image
Image_file, width, height = load_image_pixels(filename, (input_w, input_h))

И я получаю следующую ошибку:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-12-ea4c5aa676a6> in <module>
      4 filename = 'zebra.jpg'
      5 # load and prepare image
----> 6 Image_file, width, height = load_image_pixels(filename, (input_w, input_h))

<ipython-input-11-2ab602af7690> in load_image_pixels(filename, shape)
      7     Image_file = image.load_img(filename, target_size=shape)
      8     # convert to numpy array
----> 9     Image_file = image.img_to_array(image)
     10     # scale pixel values to [0, 1]
     11     Image_file = Image_file.astype('float32')

~/anaconda3/lib/python3.7/site-packages/keras/preprocessing/image.py in img_to_array(img, data_format, dtype)
     73     if dtype is None:
     74         dtype = backend.floatx()
---> 75     return image.img_to_array(img, data_format=data_format, dtype=dtype)
     76 
     77 

~/anaconda3/lib/python3.7/site-packages/keras_preprocessing/image/utils.py in img_to_array(img, data_format, dtype)
    297     # or (channel, height, width)
    298     # but original PIL image has format (width, height, channel)
--> 299     x = np.asarray(img, dtype=dtype)
    300     if len(x.shape) == 3:
    301         if data_format == 'channels_first':

~/anaconda3/lib/python3.7/site-packages/numpy/core/_asarray.py in asarray(a, dtype, order)
     83 
     84     """
---> 85     return array(a, dtype, copy=False, order=order)
     86 
     87 

TypeError: float() argument must be a string or a number, not 'module'

1 Ответ

1 голос
/ 28 марта 2020

Ваш image должен быть Image_file в Image_file = image.img_to_array(image). Так что эта строка должна быть Image_file = image.img_to_array(Image_file)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...