问题标签 [dropout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1234 浏览

python - Tensorflow Dropout:如果我应用两个 dropout 层会发生什么?

可以说,我正在构建一个像这样的神经网络:

这会是一种告诉 TensorFlow 只丢弃该层的有效技术thislayershallhavedropout吗?

基本上,我想要做的是告诉 TensorFlow 仅在单个层上使用 dropout,而不是级联回更早的层。

0 投票
2 回答
1324 浏览

tensorflow - Keras 前向传球与辍学

我正在尝试使用 dropout 来获取神经网络的错误估计。

这涉及在训练后运行我的网络的几次前向传递,并激活 dropout。但是,调用 model.predict() 时似乎没有激活 Dropout。这可以在 Keras 完成,还是我必须在其他地方举重?

0 投票
2 回答
34992 浏览

keras - Keras:LSTM dropout 和 LSTM 循环 dropout 的区别

来自 Keras 文档:

dropout:在 0 和 1 之间浮动。对于输入的线性变换,要丢弃的单位的分数。

reverse_dropout:在 0 和 1 之间浮动。对于循环状态的线性变换,要丢弃的单位的分数。

谁能指出每个辍学发生在图片下方的位置?

在此处输入图像描述

0 投票
2 回答
919 浏览

tensorflow - 使用 relu 激活的 dropout

我正在尝试在 tensorflow 中实现一个带有 dropout 的神经网络。

来自文档:“Dropout 包括在训练期间的每次更新时将输入单元的分数率随机设置为 0,这有助于防止过度拟合。保留的单元按 1 / (1 - rate) 缩放,因此它们的总和在训练时间和推理时间没有变化。”

现在我明白了,如果 dropout 应用在严格高于零的 sigmoid 激活之上,则会出现这种行为。如果一半的输入单元归零,所有输出的总和也将减半,因此将它们缩放 2 倍是有意义的,以便在下一层之前重新获得某种一致性。

现在,如果使用以零为中心的 tanh 激活怎么办?上面的推理不再成立,那么按上述因素缩放 dropout 的输出仍然有效吗?有没有办法防止 tensorflow dropout 缩放输出?

提前致谢

0 投票
1 回答
245 浏览

python - 静态 Dropout 层 - Keras

我有兴趣在 keras 中制作一个在整个培训和测试过程中都是静态的“dropout like”层。与正常的 dropout 不同,我只想切断一定数量的随机权重,而不是整个节点。即某些神经元无法连接到其他神经元,也永远无法连接。创建自定义层是实现这一目标的最简单方法吗?这是我目前的进展

我还希望能够可视化 dropout 掩码。

0 投票
1 回答
829 浏览

tensorflow - Tensorboard 和 Dropout 层

我有一个非常基本的查询。我制作了 4 个几乎相同(不同是输入形状)的 CNN,并在连接到完全连接层的前馈网络时将它们合并。

几乎相同的 CNN 的代码:

但是在张量板上,我看到所有的 Dropout 层都是相互连接的,并且 Dropout1 的颜色与 Dropout2、3、4 等颜色不同,它们都是相同的颜色。在此处输入图像描述

0 投票
1 回答
841 浏览

keras - Dropout 将层权重数组设置为空

我正在尝试访问该网络经过训练的权重值:

可以访问第一层的权重:

但不在第二层:

似乎添加 dropout 导致此删除 dropout :

结果成功访问权重

阅读有关 Dropout 的信息:https ://keras.io/layers/core/:

“Dropout 包括在训练期间的每次更新时将输入单元的分数率随机设置为 0,这有助于防止过度拟合。”

辍学可视化: 在此处输入图像描述 src:http ://www.jmlr.org/papers/volume15/srivastava14a/srivastava14a.pdf

所以神经元的一个子集被丢弃了。但是在我的示例中,似乎所有神经元都被丢弃了,因为第 2 层中的权重参数是一个空数组?为什么添加 dropout 会导致后续层中的权重参数变得不可访问?

0 投票
2 回答
4502 浏览

python - 带有noise_shape的Keras Dropout

我对带有noise_shape 参数的Keras 函数Dropout 有疑问。

问题一:

如果您的输入具有形状 (batch_size, timesteps, features) 并且您希望所有时间步长的 dropout 掩码都相同,您可以使用 noise_shape=(batch_size, 1, features) 是什么意思?添加的好处是什么这个论点?

这是否意味着将被丢弃的神经元数量在时间步长上是相同的?这意味着在每个时间步 t,会有 n 个神经元被丢弃?

问题 2: 创建模型时是否必须在 noise_shape 中包含“batch_size”?--> 看下面的例子。

假设我有一个形状为 (10000, 1, 100, 2) --> (数据数、通道、时间步长、特征数)的多元时间序列数据。

然后我创建批次大小为 64 --> (64, 1, 100, 2)

如果我想创建一个带有 dropout 的 CNN 模型,我使用 Keras 函数式 API:

因为 max1 层的输出形状应该是 (None, 64, 50, 1),而我不能将 None 分配给问号(对应于 batch_size)

我想知道我应该如何应对这种情况?我应该只使用 (64, 1, 1) 作为噪声形状吗?或者我应该定义一个名为“batch_size”的变量,然后将它传递给这个参数,比如 (batch_size, 64, 1, 1)?

0 投票
0 回答
771 浏览

lstm - Dropout 降低 Pytorch 中一层 LSTM 的测试和训练精度

我在 Mnist 数据上有一个带有 pytorch 的单层 lstm。我知道对于 pytorch 中的 lstm 的一层 lstm dropout 选项不起作用。所以,我在第二层的开头添加了一个退出,这是一个完全连接的层。然而,我观察到,在没有 dropout 的情况下,我在测试数据上获得了 97.75% 的准确率,而在 dropout 为 0.5 的情况下,我得到了 95.36%。我想问我是否做错了什么或者这种现象的原因是什么?我在测试中将其更改为 eval 模式,但我达到了 96.44% 的准确度。仍然比没有辍学的要少。非常感谢

0 投票
1 回答
64 浏览

tensorflow - LSTM Dropout Wrapper Rank Error

我有一个 LSTM 模型,它在指定我的 dropout 保持率时“正确”工作,如下所示:

但很自然,我想将 output_keep_prob 变成一个浮点变量,当我在训练与测试中时可以更改该变量。我已经这样做了,如下所示

但是,当我这样做时,Tensorflow 会抛出错误:

ValueError:形状必须是相同的等级,但对于具有输入形状的“PlaceholderWithDefault”(操作:“PlaceholderWithDefault”)为 0 和 1:[]。

我想我可能需要在占位符上指定不同的尺寸,但我在标准前馈丢失时没有遇到这个问题。我已经尝试了一些在维度中指定 n_layers 的变体(我认为我需要解决这个问题?)但没有取得任何成功。