Ошибка - Мульти-классификация нейронной сети с использованием Keras - PullRequest
0 голосов
/ 05 мая 2018

Я получаю довольно досадную ошибку из своего NN-кода и надеялся, что кто-то, кто лучше знает, как работает Keras, может объяснить мне, почему я получаю ошибку. Я ценю любую помощь! Ошибка:

AttributeError: 'DirectoryIterator' object has no attribute 'ndim'

Ошибка исходит от:

    Traceback (most recent call last):
    File "C:\Users\Cameron\Desktop\AI\CubeFieldNN_Train -fix.py", line 80, in <module>
    validation_steps = (validation_samples / batch_size))

Код:

NN.fit(
train_set, train_labels,
batch_size = batch_size,
epochs = epochs,
validation_data = (validation_set, validation_labels),
validation_steps = (validation_samples / batch_size))

Полный код: https://pastebin.com/V1YwJW3X

Полная ошибка:

    Traceback (most recent call last):
  File "C:\Users\Cameron\Desktop\AI\CubeFieldNN_Train -fix.py", line 80, in <module>
    validation_steps = (validation_samples / batch_size))
  File "C:\Python\lib\site-packages\keras\models.py", line 1002, in fit
    validation_steps=validation_steps)
  File "C:\Python\lib\site-packages\keras\engine\training.py", line 1630, in fit
    batch_size=batch_size)
  File "C:\Python\lib\site-packages\keras\engine\training.py", line 1476, in _standardize_user_data
    exception_prefix='input')
  File "C:\Python\lib\site-packages\keras\engine\training.py", line 76, in _standardize_input_data
    data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data]
  File "C:\Python\lib\site-packages\keras\engine\training.py", line 76, in <listcomp>
    data = [np.expand_dims(x, 1) if x is not None and x.ndim == 1 else x for x in data]
AttributeError: 'DirectoryIterator' object has no attribute 'ndim'

1 Ответ

0 голосов
/ 05 мая 2018

Переход к fit из fit_generator из вашего предыдущего вопроса не был действительно необходим. flow_from_directory возвращает объект типа генератора, который возвращает кортежи как данных, так и меток. Аналогично для validation_set. Также обратите внимание, что если вы укажете validation_steps, вы также должны указать steps_per_epoch. Поэтому вы можете использовать:

NN.fit_generator(train_set,
                 steps_per_epoch=steps_per_epoch,
                 epochs=epochs,
                 validation_data=validation_set,
                 validation_steps=validation_steps)

Кроме того, вы можете загрузить все изображения одновременно и передать их функции NN.fit() вместе с метками, как вы это сделали.

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