ValueError: ошибка при проверке цели: ожидаемая модель_2 должна иметь форму (None, 252, 252, 1), но получен массив с формой (300, 128, 128, 3)

Привет Я создаю classификатор изображений для classификации одного classа, в котором я использовал autoencoder во время запуска этой модели. Я получаю эту ошибку этой строкой (autoencoder_model.fit) (ValueError: ошибка при проверке цели: ожидается, что model_2 будет иметь форму ( None, 252, 252, 1), но получил массив с формой (300, 128, 128, 3).)

num_of_samples = img_data.shape[0] labels = np.ones((num_of_samples,),dtype='int64') labels[0:376]=0 names = ['cats'] input_shape=img_data[0].shape X_train, X_test = train_test_split(img_data, test_size=0.2, random_state=2) inputTensor = Input(input_shape) x = Conv2D(16, (3, 3), activation='relu', padding='same')(inputTensor) x = Conv2D(8, (3, 3), activation='relu', padding='same')(x) x = MaxPooling2D((2, 2), padding='same')(x) x = Conv2D(8, (3, 3), activation='relu', padding='same')(x) encoded_data = MaxPooling2D((2, 2), padding='same')(x) encoder_model = Model(inputTensor,encoded_data) # at this point the representation is (4, 4, 8) ie 128-dimensional encoded_input = Input((4,4,8)) x = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded_input) x = UpSampling2D((2, 2))(x) x = Conv2D(8, (3, 3), activation='relu', padding='same')(x) x = UpSampling2D((2, 2))(x) x = Conv2D(16, (3, 3), activation='relu',padding='same')(x) x = UpSampling2D((2, 2))(x) decoded_data = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x) decoder_model = Model(encoded_input,decoded_data) autoencoder_input = Input(input_shape) encoded = encoder_model(autoencoder_input) decoded = decoder_model(encoded) autoencoder_model = Model(autoencoder_input, decoded) autoencoder_model.compile(optimizer='adadelta', `enter code here`loss='binary_crossentropy') autoencoder_model.fit(X_train, X_train, epochs=50, batch_size=32, validation_data=(X_test, X_test), callbacks=[TensorBoard(log_dir='/tmp/autoencoder')]) 

Это простая несовместимость между формой вывода декодера и формой ваших данных обучения. (Выход целевых средств).

Я вижу, у вас есть 2 MaxPoolings (разделение вашего размера изображения на 4) и три upsamplings (умножая вход декодера на 8).

Конечный вывод автокодера слишком велик и не соответствует вашим данным. Вы должны просто работать в модели, чтобы форма вывода соответствовала вашим данным обучения.

Вы используете неправильный API

 autoencoder_model.fit(X_train, X_train, <--- This one is wrong epochs=50, batch_size=32, validation_data=(X_test, X_test), callbacks=[TensorBoard(log_dir='/tmp/autoencoder')]) 

Взгляните на исходный код метода .fit: https://github.com/keras-team/keras/blob/master/keras/models.py

 def fit(self, x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None, validation_split=0., validation_data=None, shuffle=True, class_weight=None, sample_weight=None, initial_epoch=0, steps_per_epoch=None, validation_steps=None, **kwargs): """Trains the model for a fixed number of epochs (iterations on a dataset). # Arguments x: Numpy array of training data. If the input layer in the model is named, you can also pass a dictionary mapping the input name to a Numpy array. `x` can be `None` (default) if feeding from framework-native tensors (eg TensorFlow data tensors). y: Numpy array of target (label) data. If the output layer in the model is named, you can also pass a dictionary mapping the output name to a Numpy array. `y` can be `None` (default) if feeding from framework-native tensors (eg TensorFlow data tensors). 

Таким образом, x должен быть данными, а y должен быть меткой данных. Надеюсь, что помощь

Interesting Posts

Почему GDB непредсказуемо скачет между строками и печатает переменные как «»?

В чем смысл термина «свободная функция» в C ++?

C ++ Call Pointer To Member Function

Запуск Windows 10 после обновления

Жесткий диск 750Gig показывает полнофункциональный только 315Gigs

изображение прикрепление к почте .. как в android?

Как использовать тернарный оператор внутри интерполированной строки?

Как сохранить удаленную задачу после запуска в консоли SSH?

Восстановите поведение браузера в среднем клике

Использование Retrofit в Android

Запуск командной строки молча с помощью VbScript и получение вывода?

Неподдерживаемая архитектура при установке Linux-программы в OSX

Как узнать, зарегистрирован ли пользователь в файле passport.js?

HttpURLConnection для отправки изображений, аудио и видео файлов с параметром может (String или Json String) Android

Использование учетной записи Google для входа в приложение для Android

Давайте будем гением компьютера.