Исключение Kears fit_generator: выход генератора должен быть кортежем (x, y, sample_weight) или (x, y). Найдено:

Я пытаюсь построить autoencoder для не MNIST, не Imagenet данных. Использование https://blog.keras.io/building-autoencoders-in-keras.html в качестве моей базы. Однако я получаю следующую ошибку.

**Exception: output of generator should be a tuple (x, y, sample_weight) or (x, y). Found: [[[[ 0.86666673 0.86666673 0.86666673 ..., 0.62352943 0.627451 0.63137257] [ 0.86666673 0.86666673 0.86666673 ..., 0.63137257 0.627451 0.627451 ] [ 0.86666673 0.86666673 0.86666673 ..., 0.63137257 0.627451 0.62352943] ...,** 

Так как это автокодер, в моем datagenerator используется режим класса = Нет. Мой код выглядит следующим образом.

 from keras.layers import Input, Dense, Convolution2D, MaxPooling2D, UpSampling2D,Activation, Dropout, Flatten from keras.models import Model,Sequential from keras.preprocessing.image import ImageDataGenerator import numpy as np import os import h5py img_width=140 img_height=140 train_data_dir=r'SitePhotos\train' valid_data_dir=r'SitePhotos\validation' input_img = Input(batch_shape=(32,3, img_width, img_width)) x = Convolution2D(16, 3, 3, activation='relu', border_mode='same')(input_img) x = MaxPooling2D((2, 2), border_mode='same')(x) x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x) x = MaxPooling2D((2, 2), border_mode='same')(x) x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x) encoded = MaxPooling2D((2, 2), border_mode='same')(x) # at this point the representation is (8, 4, 4) ie 128-dimensional x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(encoded) x = UpSampling2D((2, 2))(x) x = Convolution2D(8, 3, 3, activation='relu', border_mode='same')(x) x = UpSampling2D((2, 2))(x) x = Convolution2D(16, 3, 3, activation='relu')(x) x = UpSampling2D((2, 2))(x) decoded = Convolution2D(1, 3, 3, activation='sigmoid', border_mode='same')(x) autoencoder = Model(input_img, decoded) autoencoder.compile(optimizer='adadelta', loss='mse') valid_datagen = ImageDataGenerator(rescale=1./255) train_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory( train_data_dir, target_size=(img_width, img_height), batch_size=32, class_mode=None, shuffle=True) valid_generator = valid_datagen.flow_from_directory( valid_data_dir, target_size=(img_width, img_height), batch_size=32, class_mode=None, shuffle=True) autoencoder.fit_generator(train_generator, nb_epoch=50, validation_data=valid_generator, samples_per_epoch=113, nb_val_samples=32 ) 

One Solution collect form web for “Исключение Kears fit_generator: выход генератора должен быть кортежем (x, y, sample_weight) или (x, y). Найдено:”

Реальное решение лежит в этой проблеме Keras, по-видимому, на @skottapa.

https://github.com/fchollet/keras/issues/4260

rodgzilla предоставил обновленный ImageDataGenerator, который добавляет class_mode = 'input', который решает проблему.

Приятно, что вы можете выполнить резервное копирование модификации в более старые версии Keras. Немного модифицированный модуль изображения можно скачать здесь:

https://gist.github.com/gsdefender/293db0987a800cf1b103b7777966f8af

  • Keras + tensorflow дает ошибку "no attribute" control_flow_ops '"
  • Форма ввода LSTM в нейронной сети из кадра данных
  • Keras Ошибка при проверке: ожидается, что embedding_1_input будет иметь форму (None, 100), но получит массив с формой (1, 3)
  • Прогнозировать использование данных с меньшими временными шагами (разное измерение) с использованием модели Keras RNN
  • Как предотвратить потерю: nan, пока я подгоняю свою модель keras?
  • Использование Keras & Tensorflow с графическим процессором AMD
  • Почему перестановка моей проверки в Keras меняет производительность моей модели?
  • Как передать параметр функции Scikit-Learn Keras
  • KeyError: «Невозможно открыть атрибут (не удается найти атрибут:« nb_layers »)
  • Ошибка при проверке цели: ожидается, что dense_20 будет иметь форму (None, 3), но получил массив с формой (1200, 1)
  • Теано с Keras на малине Pi
  • Python - лучший язык программирования в мире.