7

我正在构建 CNN + Ensemble 模型,用于在 Python 中使用 Tensorflow 对图像进行分类。我在谷歌图片上抓取了狗和猫的图片。然后将它们更改为 126 * 126 像素大小和灰度,添加标签 0 到狗,1 到猫。CNN有5个conv层和2个fc层。HE、PReLU、max-pooling、drop-out、Adam 用于模型。当 Parameter Tuning 完成后,我添加了 Early-Stopping,模型学习了 65~70 epoch,完成了 92.5~92.7% 的准确率。学完之后,想把我的CNN模型改成VGG网络,我检查了我的CNN参数,震惊地发现我没有在conv层添加Bias。2 fc 层有偏差,但 5 conv 层没有偏差。所以我在 5 conv 层添加了 Bias,但我的模型无法学习。成本增加到无限。

偏差不一定在深度卷积层?

4

1 回答 1

8

你是如何将你的偏差添加到卷积层的?有两种方法可以做到这一点:每个内核共享一个偏置的绑定偏置和每个内核和输出使用一个偏置的非绑定偏置。也读这个

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

一个例子是152 层 ResNet 架构实现,其中卷积层没有偏差。相反,偏差被添加到后续的批量归一化层中。

于 2017-07-17T09:36:53.187 回答