当前位置: 首页 > 知识库问答 >
问题:

在Keras的卷积层上使用Dropout

狄海
2023-03-14

我在一维输入信号上实现了一个具有批量归一化的卷积神经网络。我的模型有一个相当好的精度约80%。以下是我的图层顺序:(Conv1D,Batch,ReLU,MaxPooling)重复6次,Conv1D,Batch,ReLU,Dense,Softmax。

我看过几篇文章说我不应该在卷积层上使用dropout,而是应该使用批处理规范化,所以我想通过用dropout层替换所有批处理规范化层来试验我的模型,看看dropout是否真的会让我的性能更差。

我的新模型具有以下结构:(Conv1D,Dropout,ReLU,MaxPooling)重复6次,Conv1D,Dropout,ReLU,Dense,Softmax。我曾尝试过0.1、0.2、0.3、0.4、0.5的辍学率。我的新模型的性能只有约25%,比我的原始模型差得多,甚至比预测主导阶级(约40%)还要差。

我想知道性能上的巨大差异是否实际上是用退出代替批处理规范化的结果。还是我对如何使用辍学的误解。

共有1个答案

田鸿彩
2023-03-14

要直观了解如何使用批处理规范和退出,您应该首先了解这些层的作用:

  • 批次标准化使用在批次中计算的平均值和方差缩放和移动图层输出,以便下一层的输入对内部协变量移动更为稳健

您所做的是将规范化层替换为给信息流添加额外噪声的层,这当然会导致准确度的大幅降低。

我建议您像第一次设置一样使用批处理规范,如果您想尝试退出,请在激活功能应用于前一层后添加它。通常,衰减用于调整非常容易过度拟合的致密层。尝试以下操作:

  1. 6 x(Conv1D、Batch、ReLU、MaxPooling)
 类似资料:
  • 我正在使用MNIST数据集,我正在使用keras来训练卷积神经网络。关于权重矩阵,有些东西我不明白。 输入层有28x28=784个神经元。然后我使用: 在我训练模型后,把W=模型。get\u weights(),I打印W[I]。每个i的形状并获得: 据我所知,这意味着对于第一个隐藏层有32个8x8=64的图像(因为(28-7)/3 1=8)因此第一个隐藏层中有64x32=2048个神经元。 下一部

  • 卷积神经网络有一个批量过滤器, 持续不断的在图片上滚动收集图片里的信息,每一次收集的时候都只是收集一小块像素区域, 然后把收集来的信息进行整理, 这时候整理出来的信息有了一些实际上的呈现, 比如这时的神经网络能看到一些边缘的图片信息, 然后在以同样的步骤, 用类似的批量过滤器扫过产生的这些边缘信息, 神经网络从这些边缘信息里面总结出更高层的信息结构,比如说总结的边缘能够画出眼睛,鼻子等等. 再经过

  • Convolution1D层 keras.layers.convolutional.Convolution1D(nb_filter, filter_length, init='uniform', activation='linear', weights=None, border_mode='valid', subsample_length=1, W_regularizer=None, b_regu

  • Conv1D层 keras.layers.convolutional.Conv1D(filters, kernel_size, strides=1, padding='valid', dilation_rate=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform', bias_initializer='zero

  • 我对神经网络和keras有点陌生。我有一些大小为6*7的图像,过滤器的大小为15。我想有几个过滤器,并在每个上分别训练一个卷积层,然后组合它们。我在这里看了一个例子: 此型号使用一个过滤器。有谁能给我一些关于如何修改模型以处理并行卷积层的提示吗。 谢啦

  • 为了将密集层转换为卷积层,我很难找到权重的正确映射。 这是我正在制作的ConvNet的摘录: 在MaxPooling之后,输入是形状(512,7,7)。我想将密集层转换为卷积层,使其看起来像这样: 但是,我不知道我需要如何重塑权重才能将扁平化的权重正确映射到卷积层所需的(4096,512,7,7)结构?现在,密集层的权重是维度(25088,4096)。我需要以某种方式将这25088个元素映射到(5