'float'类型的对象没有len()和图像生成探针

时间:2019-03-21 13:28:44

标签: python image-processing keras deep-learning

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

这是我的代码:

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()

1 个答案:

答案 0 :(得分:0)

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

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

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