我正在使用具有张量流的keras并尝试构建类似VGG的模型。在某个阶段,我有一个大小的张量(h,w,c)=(2,2,512),我打电话:
model.add(Convolution2D(nOutputPlane,3,3,border_mode='same'))
并收到以下错误:
ValueError: Filter must not be larger than the input: Filter: (3, 3) Input: (2, 2)
据我了解,只要border_mode相同,就应该没问题,不是吗?
所以我知道为什么会出现这个错误?
由于
答案 0 :(得分:-1)
没有。 border_mode
(也称为填充类型)应用于卷积的输出。
因此,如果卷积输入为2x2,则必须使用2x2(或1x1)滤波器才能产生1x1(或2x2)输出。然后,如果border_mode='same'
输出填充了正确数量的零,以便具有相同的输入大小。
如果要在2x2输入上应用3x3卷积,则必须在卷积操作之前填充。
P.S:填充2x2输入使其成为3x3是不对称的填充,这是不寻常的。检查你的网络结构,通常一切都是对称的