我在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)
答案 0 :(得分:0)
网络输出的形状(MaxPooling2D
图层的输出)与您期望的输出之间存在不匹配(基于您一起输入的所需“真实”输出示例每个输入到model.fit_generator()
。
要调查不匹配,您必须检查train_generator
的(未示出的)代码,以查看您期望的输出形状,并可以使用model.summary()
查看{MaxPooling2D
生成的冲突输出形状1}}图层。
答案 1 :(得分:0)
尝试将以下参数添加到Cov2D:
padding='SAME'
赞:
model.add(Conv2D(3, (3, 3),padding='SAME'))