如何在keras conv层中进行零填充?

Dim*_*ims 9 python machine-learning padding conv-neural-network keras

我试图从科学文章中实现模型,该文章说它们使用零填充.是否可以在keras Conv2D中配置此填充?

我看到的填充只有可能的值

padding:"有效"或"相同"之一(不区分大小写).

是否可以用零或其他常量值填充?

Jon*_*ler 10

"相同"表示零填充.目前无法以有效的方式填充其他常量.

  • “相同”一词是指结果的“形状”,而不是其值。也就是说,返回的张量具有与输入相同的形状。 (3认同)
  • 你怎么知道的?可能“相同”意味着填充具有相同的值,不是吗? (2认同)

Nea*_*eal 6

使用时padding='valid',没有填充。

当padding='same'与一起使用时strides=1,输入将被零填充,因此输出的宽度和高度与输入相同。如文档中所述,跨“ strides!= 1”的后端在“相同”方面略有不一致。

如果要手动设置填充值,最简单的方法可能是在ZeroPadding2D之前添加一个图层Conv2D。

例如,ZeroPadding2D(padding=((1,2),(3,4)))将在左侧添加1个尺寸,在右侧添加2个尺寸,在顶部添加3个尺寸,在底部添加4个尺寸。ZeroPadding2D(5)将在所有4个边界上增加5个尺寸。

(顺便说一句,这是后端功能的包装层spatial_2d_padding)