问题标签 [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.
python - Tensorflow Dropout:如果我应用两个 dropout 层会发生什么?
可以说,我正在构建一个像这样的神经网络:
这会是一种告诉 TensorFlow 只丢弃该层的有效技术thislayershallhavedropout
吗?
基本上,我想要做的是告诉 TensorFlow 仅在单个层上使用 dropout,而不是级联回更早的层。
tensorflow - Keras 前向传球与辍学
我正在尝试使用 dropout 来获取神经网络的错误估计。
这涉及在训练后运行我的网络的几次前向传递,并激活 dropout。但是,调用 model.predict() 时似乎没有激活 Dropout。这可以在 Keras 完成,还是我必须在其他地方举重?
tensorflow - 使用 relu 激活的 dropout
我正在尝试在 tensorflow 中实现一个带有 dropout 的神经网络。
来自文档:“Dropout 包括在训练期间的每次更新时将输入单元的分数率随机设置为 0,这有助于防止过度拟合。保留的单元按 1 / (1 - rate) 缩放,因此它们的总和在训练时间和推理时间没有变化。”
现在我明白了,如果 dropout 应用在严格高于零的 sigmoid 激活之上,则会出现这种行为。如果一半的输入单元归零,所有输出的总和也将减半,因此将它们缩放 2 倍是有意义的,以便在下一层之前重新获得某种一致性。
现在,如果使用以零为中心的 tanh 激活怎么办?上面的推理不再成立,那么按上述因素缩放 dropout 的输出仍然有效吗?有没有办法防止 tensorflow dropout 缩放输出?
提前致谢
python - 静态 Dropout 层 - Keras
我有兴趣在 keras 中制作一个在整个培训和测试过程中都是静态的“dropout like”层。与正常的 dropout 不同,我只想切断一定数量的随机权重,而不是整个节点。即某些神经元无法连接到其他神经元,也永远无法连接。创建自定义层是实现这一目标的最简单方法吗?这是我目前的进展。
我还希望能够可视化 dropout 掩码。
keras - Dropout 将层权重数组设置为空
我正在尝试访问该网络经过训练的权重值:
可以访问第一层的权重:
但不在第二层:
似乎添加 dropout 导致此删除 dropout :
结果成功访问权重
阅读有关 Dropout 的信息:https ://keras.io/layers/core/:
“Dropout 包括在训练期间的每次更新时将输入单元的分数率随机设置为 0,这有助于防止过度拟合。”
辍学可视化: src:http ://www.jmlr.org/papers/volume15/srivastava14a/srivastava14a.pdf
所以神经元的一个子集被丢弃了。但是在我的示例中,似乎所有神经元都被丢弃了,因为第 2 层中的权重参数是一个空数组?为什么添加 dropout 会导致后续层中的权重参数变得不可访问?
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)?
lstm - Dropout 降低 Pytorch 中一层 LSTM 的测试和训练精度
我在 Mnist 数据上有一个带有 pytorch 的单层 lstm。我知道对于 pytorch 中的 lstm 的一层 lstm dropout 选项不起作用。所以,我在第二层的开头添加了一个退出,这是一个完全连接的层。然而,我观察到,在没有 dropout 的情况下,我在测试数据上获得了 97.75% 的准确率,而在 dropout 为 0.5 的情况下,我得到了 95.36%。我想问我是否做错了什么或者这种现象的原因是什么?我在测试中将其更改为 eval 模式,但我达到了 96.44% 的准确度。仍然比没有辍学的要少。非常感谢
tensorflow - LSTM Dropout Wrapper Rank Error
我有一个 LSTM 模型,它在指定我的 dropout 保持率时“正确”工作,如下所示:
但很自然,我想将 output_keep_prob 变成一个浮点变量,当我在训练与测试中时可以更改该变量。我已经这样做了,如下所示
但是,当我这样做时,Tensorflow 会抛出错误:
ValueError:形状必须是相同的等级,但对于具有输入形状的“PlaceholderWithDefault”(操作:“PlaceholderWithDefault”)为 0 和 1:[]。
我想我可能需要在占位符上指定不同的尺寸,但我在标准前馈丢失时没有遇到这个问题。我已经尝试了一些在维度中指定 n_layers 的变体(我认为我需要解决这个问题?)但没有取得任何成功。