Machine learning Keras fit_生成器输入形状不正确

Machine learning Keras fit_生成器输入形状不正确,machine-learning,keras,tf.keras,keras-2,Machine Learning,Keras,Tf.keras,Keras 2,我正在使用ImageDataGenerator将一批图像输入到神经网络,但无法找到正确的方法来输入。运行以下命令: train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1./255) training_set = train_datagen.flow_fr

我正在使用ImageDataGenerator将一批图像输入到神经网络,但无法找到正确的方法来输入。运行以下命令:

train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True)
test_datagen = ImageDataGenerator(rescale=1./255)
training_set = train_datagen.flow_from_directory('/home/Training', target_size=(256,256), batch_size=32, class_mode='binary', color_mode = 'grayscale')

test_set = test_datagen.flow_from_directory('/home/Test', target_size=(256,256), batch_size=32, class_mode='binary',color_mode = 'grayscale' )


input_size = (256, 256, 1)
inputs = Input(input_size)
conv1 = Conv2D(64, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(inputs)
conv2 = Conv2D(2, 3, activation = 'relu', padding = 'same', kernel_initializer = 'he_normal')(conv1)
conv3 = Conv2D(1, 1, activation = 'sigmoid')(conv2)
model1 = Model(inputs = inputs, outputs = conv3)

model1.compile(optimizer = Adam(lr = 1e-4), loss = 'binary_crossentropy', metrics = ['accuracy'])

model1.fit_generator(training_set, steps_per_epoch=160, epochs=10, validation_data=test_set, validation_steps=800)   
结果:

检查目标时出错:预期conv2d_198有4个维度, 但是得到了具有形状的数组(14,1)


它似乎使用批处理作为输入张量,因为除去输入层之外的所有层都会导致类似的错误。如何将它们正确地输入到网络中?

基本上,Keras希望您通过输入维度和行。看起来您正在传递一个二维数组。你能确定你通过的是(-1,维度1,维度2,通道)吗?您可能需要使用“重塑”。-1应该告诉Keras推断行/观察值。我是Keras的新手,所以我相信其他人会有更好的答案,但你也可以这么做。。myinputarray.Reformate()文件