объект типа 'float' не имеет len () и проблемы генерации изображения - PullRequest
0 голосов
/ 21 марта 2019

Я делаю классификацию изображений и пытаюсь повысить свою точность, поэтому я пытаюсь сгенерировать изображение, но у меня возникла ошибка пути к файлу, пожалуйста, помогите мне, как это сделать.

вот мой код:

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 голосов
/ 22 марта 2019

Как видно из предоставленной вами трассировки стека, validation_data=0.25.

Поскольку validation_data не является объектом, подобным списку, у него нет метода __len__, поэтому len(validation_data) генерирует ошибку.

Это не «какая-то ошибка пути к файлу», скорее, вам нужно убедиться, что validation_data действительно то, что вы думаете (некая пара значений-данных и значений). Пожалуйста, проверьте это.

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