我遇到了同样的问题,但是在这个帖子中提供的解决方法并没有帮助我。
在我的情况下,导致这个错误的是另一个不同的问题:
代码
imageSize=32
classifier=Sequential()
classifier.add(Conv2D(64, (3, 3), input_shape = (imageSize, imageSize, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Conv2D(64, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Conv2D(64, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Conv2D(64, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Conv2D(64, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))
classifier.add(Flatten())
Error
图像大小为32x32。在第一层卷积后,它被缩小到30x30。(如果我正确理解了卷积的话)
然后池化层会将其分成15x15。
接下来又有一层卷积将其缩小至13x13...
我希望你能看到这样做的结果:最终,我的特征图如此之小,以至于我的池化层(或卷积层)过不去,导致出现错误。
Solution
解决此问题的简单方法是要么使图像大小更大,要么使用较少的卷积层或池化层。
(3, 3)
而不是3, 3
。 - ml4294