ValueError:检查输入时出错:预期input_1具有形状(None,65563),但数组的形状为(374,65536)

时间:2019-01-24 14:58:42

标签: python keras

我有一个用Keras编写的自动编码器,如下所示。我收到以下错误,并且不确定如何解决,有什么想法吗?

  

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)

谢谢。

1 个答案:

答案 0 :(得分:1)

65563而不是65536可能是造成此问题的错字。