У меня есть автоэнкодер, написанный на Керасе, показанный ниже. Я получаю следующую ошибку, и не знаю, как ее решить, есть идеи?
ValueError: Ошибка при проверке ввода: ожидается, что input_1 будет иметь форму
(Нет, 65563), но получил массив с формой (374, 65536)
from keras.layers import Input, Dense, Flatten
from keras.models import Model
from keras.preprocessing.image import img_to_array
import cv2
import numpy
import os
training_directory = '/training'
validation_directory ='/validation'
results_directory = '/results'
training_images = []
validation_images = []
# the size of the encoded represenatation
encoding_dimension = 784
# input placeholder
input_image = Input(shape=(65563,))
# the encoded representation of the input
encoded = Dense(encoding_dimension,activation='relu')(input_image)
# reconstruction of the input (lossy)
decoded = Dense(65563,activation='sigmoid')(encoded)
# map the input image to its reconstruction
autoencoder = Model(input_image,decoded)
# encoder model
# map an input image to its encoded representation
encoder = Model(input_image,encoded)
# decoder model
# place holder fpr an encoded input
encoded_input = Input(shape=(encoding_dimension,))
# retrieve the last layer of the autoencoder model
decoder_layer = autoencoder.layers[-1]
# create the decoder model
decoder = Model(encoded_input,decoder_layer(encoded_input))
for root, dirs, files in os.walk(training_directory):
for file in files:
image = cv2.imread(root + '/' + file)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = img_to_array(image)
training_images.append(image)
training_images = numpy.array(training_images)
for root, dirs, files in os.walk(validation_directory):
for file in files:
image = cv2.imread(root + '/' + file)
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
image = img_to_array(image)
validation_images.append(image)
validation_images = numpy.array(validation_images)
# reshape data
training_images = training_images.reshape((len(training_images), numpy.prod(training_images.shape[1:])))
validation_images = validation_images.reshape((len(validation_images), numpy.prod(validation_images.shape[1:])))
autoencoder.compile(optimizer='adam',loss='binary_crossentropy')
autoencoder.fit(training_images,epochs=10,batch_size=20,shuffle=True,validation_data=(validation_images))
encoded_images = encoder.predict(validation_images)
decoded_images = decoder.predict(encoded_images)
Спасибо.