tensorflow - Bias一定需要卷积层吗?

标签 tensorflow conv-neural-network bias-neuron

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

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

最佳答案

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

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

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

关于tensorflow - Bias一定需要卷积层吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45134831/

相关文章:

tensorflow - 可变大小的 tensorflow 常数

pytorch 一个模型的多个分支

conv-neural-network - 如何在 PyTorch 中执行 sum pooling

keras - 何时在 Keras 模型中使用偏差?

neural-network - NEAT 中的偏置神经元是如何创建的?

python - 如何设置 tf.keras.layers.RandomFlip 的可能性?

python - 为什么 Keras/tensorflow 的 sigmoid 和交叉熵精度低?

python - 如何在 Keras 中保存每个时期的预测数据

python - 无论输入如何,Keras 上的 CNN 都会收敛到相同的值

machine-learning - 带偏差更新的神经网络 sigmoid 激活