【问题标题】:object of type 'float' has no len() and image generation probelm'float' 类型的对象没有 len() 和图像生成问题
【发布时间】:2019-03-21 13:28:43
【问题描述】:

我正在做图像分类,我正在尝试提高我的准确性,我正在尝试生成图像,但是我遇到了一些文件路径错误,请帮助我怎么做。

这里是我的代码:

train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        'C:\\Users\\NanduCn\\jupter1\\train-scene classification',
        target_size=(64, 64),
        batch_size=32,
        class_mode='categorical')

validation_generator = test_datagen.flow_from_directory(
        'C:\\Users\\NanduCn\\jupter1\\train-scene classification',
        target_size=(64, 64),
        batch_size=32,
        class_mode='categorical')

model.fit_generator(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)

我有 6 类图像,但我有 1 类图像生成,这里我的文件像这样 train-scene classification is folder in train is images file and train.csv, and test.csv

Found 24335 images belonging to 1 classes.
Found 24335 images belonging to 1 classes.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-57-faf37afc0119> in <module>()
     24         epochs=50,
     25         validation_data=0.25,
---> 26         validation_steps=800)

~\Anaconda3\lib\site-packages\keras\legacy\interfaces.py in wrapper(*args, **kwargs)
     89                 warnings.warn('Update your `' + object_name + '` call to the ' +
     90                               'Keras 2 API: ' + signature, stacklevel=2)
---> 91             return func(*args, **kwargs)
     92         wrapper._original_function = func
     93         return wrapper

~\Anaconda3\lib\site-packages\keras\engine\training.py in fit_generator(self, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
   1416             use_multiprocessing=use_multiprocessing,
   1417             shuffle=shuffle,
-> 1418             initial_epoch=initial_epoch)
   1419 
   1420     @interfaces.legacy_generator_methods_support

~\Anaconda3\lib\site-packages\keras\engine\training_generator.py in fit_generator(model, generator, steps_per_epoch, epochs, verbose, callbacks, validation_data, validation_steps, class_weight, max_queue_size, workers, use_multiprocessing, shuffle, initial_epoch)
    131             else:
    132                 # Prepare data for validation
--> 133                 if len(validation_data) == 2:
    134                     val_x, val_y = validation_data
    135                     val_sample_weight = None

TypeError: object of type 'float' has no len()

【问题讨论】:

  • 或许validation_data=[0.25]?
  • 对数据的验证
  • taras 表示validation_data 应该是一个列表,而不是单个值。您更新了代码,但没有更新错误输出。
  • 嗨 meowgoesthedog 我有 6 类图像,但它显示 1 类,你能帮我如何生成图像吗?

标签: python image-processing keras deep-learning


【解决方案1】:

从您提供的堆栈跟踪中可以看出,validation_data=0.25

由于validation_data 不是类列表对象,它没有__len__ 方法,因此len(validation_data) 会产生错误。

这不是“某些文件路径错误”,而是您需要确保 validation_data 确实是您认为的那样(某种数据目标值对)。请检查一下。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2021-07-16
    • 2016-02-15
    • 1970-01-01
    相关资源
    最近更新 更多