是否需要在Colvolution层使用Bias?

时间:2017-07-17 01:29:24

标签: tensorflow conv-neural-network bias-neuron

我正在建立CNN + Ensemble模型,用于在Python上使用Tensorflow对图像进行分类。我在谷歌图片中抓取了狗和猫的图像。然后将它们更改为126 * 126像素大小和灰度,将标签0添加到狗,1添加到猫。 CNN有5个转换层和2个fc层。 HE,PReLU,max-pooling,drop-out,Adam用于模型。参数调整完成后,我添加了Early-Stopping,模型学习了65~70个时代,精度达到了92.5~92.7%。 学习结束后,我想把我的CNN模型更改为VGG网络,我检查了我的CNN参数,令人震惊的是,我发现我没有在转换层添加偏移。 2 fc层具有偏置但是5转换层没有偏置。所以我在5转换层添加了Bias,但我的模型无法学习。成本增加到无限。

偏差不一定是深层卷积层吗?

1 个答案:

答案 0 :(得分:6)

你是如何将你的偏见添加到卷积层的?有两种方法可以做到这一点:绑定偏差,每个内核共享一个偏差,解开偏差,每个内核和输出使用一个偏差。另请阅读this

关于您的问题是否有必要,答案是。卷积层中的偏差增加了模型的容量,使其在理论上能够表示更复杂的数据。但是,如果您的模型已经具备了执行此操作的能力,则不需要它们。

一个例子是this实现152层ResNet架构,其中卷积层没有偏差。 而是在随后的批量标准化层中添加偏差。