在进行卷积运算时如果选用了same模式,我们则需要对要处理的卷(volume)进行零填充,通过零填充能够为我们带来如下两条好处:
- 保持卷的尺寸不变,这对于深度神经网络来说是重要的因为如果不经行零填充在逐层深入后卷的尺寸会被收缩
- 通过零填充卷边缘的数据更能够有效的参与计算影响后续参数,
在进行零填充的时候可以使用numpy的pad函数实现,其中pad函数的第一个参数代表待填充的数组,第二个参数指示填充规则,第三个参数指定填充数据的模式这里可以选择“constant”代表着常量填充,当然除此之外还可以使用其他的数据填充模式比如“mean”代表着取中值填充,当填充规则为“constant”的时可以结合填充规则指定填充常量值,默认情况下是零填充。这些参数中最值得探究的就是第二个参数,这个参数可以是一个常量,数组或者元组等,接下来以几个例子进行说明:
- 当第二个参数是常量时各个维度采取相同的填充规则即在每个维度前后填充相同数量的数据如下所示:
a = np.array([[1,2],[3,4]])
print(a)
np.pad(a,1,'constant')
结果如下所示
[[1 2]
[3 4]]
array([[0, 0, 0, 0]