我在Windows 10上使用keras tensorflow后端 . 我无法解释错误的含义
这是我的代码片段
{
model = Sequential([
#Dense(32, input_shape=(1080,1920,2)),
Dense(32, input_shape=(250,250, 3)),
#Dense(32, input_shape=(3,1080,1920,2)),
Activation('relu'),
Dense(10),
Activation('softmax'),
Dropout(0.02),
])
layer = Dropout(0.02)
#further layers:
model.add(Dense(units=3)) #hidden layer 1
model.add(Dense(units=1)) #output layer
model.add(Conv2D(3, (3, 3)))
model.add(MaxPooling2D(pool_size=(2, 2),strides=None,padding='valid', data_format=None))
model.compile(loss=losses.mean_squared_error, optimizer='sgd')
sgd = optimizers.SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
test_generator = ImageDataGenerator()
validation_generator = test_generator.flow_from_directory(
'human_faces/validation',
target_size=(250,250),
batch_size=3,
class_mode=None,classes=0)
model.fit_generator(
train_generator,
steps_per_epoch=1,## batch_size,
#steps_per_epoch=3,
epochs=5,
validation_data=validation_generator,
# validation_steps=61 ) # batch_size)
validation_steps=1)
}
我的错误:
文件“C:/Users/Owner/PycharmProjects/untitled1/work.py”,第89行,在validation_steps = 1)ValueError:检查目标时出错:预期max_pooling2d_1有4个维度,但得到的数组有形状(61,1 )
2 回答
网络输出的形状(这是
MaxPooling2D
图层的输出)与您期望的输出之间存在不匹配(基于所需的"true"输出示例,您将每个输入与model.fit_generator()
一起提供 .要调查不匹配,您必须检查
train_generator
的(未示出的)代码以查看您期望的输出形状,并且可以使用model.summary()
来查看MaxPooling2D
层生成的冲突输出形状 .尝试将以下参数添加到Cov2D:
padding='SAME'
喜欢:
model.add(Conv2D(3, (3, 3),padding='SAME'))