TypeError:float()参数必须是字符串或数字,而不是“模块”

时间:2020-03-28 17:10:27

标签: python-3.x keras image-preprocessing

任何帮助将不胜感激。我正在尝试“定义期望的输入形状”,作为您可以在以下网站上找到的教程模型的一部分:(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 个答案:

答案 0 :(得分:1)

您的 var output = input.OrderBy(x => x[0]); for (int i = 0; i < max_lenth; i++) { output = output.ThenBy(x => x[i]); } 应该是image中的Image_file。所以这行应该是Image_file = image.img_to_array(image)