问题标签 [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 - 在 PyTorch 中实现完全连接层的 dropout
如何在 Pytorch 中将 dropout 应用于以下全连接网络:
keras - 在 Keras 的卷积层上使用 Dropout
我已经实现了一个对一维输入信号进行批量归一化的卷积神经网络。我的模型的准确率非常好,约为 80%。这是我层的顺序:(Conv1D,Batch,ReLU,MaxPooling)重复6次,Conv1D,Batch,ReLU,Dense,Softmax。
我看过几篇文章说我不应该在卷积层上使用 dropout,而是应该使用批量归一化,所以我想通过用 dropout 层替换所有批量归一化层来试验我的模型,看看 dropout 是否真的会提高我的表现更差。
我的新模型结构如下:(Conv1D, Dropout, ReLU, MaxPooling) repeat 6 times, Conv1D, Dropout, ReLU, Dense, Softmax。我尝试了 0.1、0.2、0.3、0.4、0.5 的辍学率。我的新模型的性能只有~25%,比我原来的模型差很多,甚至比预测主导类(~40%)还要差。
我想知道性能上的巨大差异是否实际上是用 dropout 代替批量标准化的结果。还是我对如何使用 dropout 的误解。
tensorflow - 如何在 Conv Layer 中使用 dropout 在 tensorflow 中删除激活图?
我正在尝试在卷积层中添加 dropout(尽管人们似乎不经常这样做)。
根据 cs231n,他们建议在所有激活图中删除激活图而不是单元(我认为这在某种程度上是有道理的,因为每个激活图都在不同位置提取相同的特征)。
在tensorflow中,我找不到任何API可以直接做到这一点,那我该怎么做呢?这是我第一次在 StackOverflow 中提出问题,我将感谢您的建议和答案。
tensorflow - 有没有办法保存应用的 Keras 辍学张量以供将来使用?
在我的 Keras CNN 中,我在推理过程中应用了 dropout 来测量一些不确定性。对于我的一个新想法,我需要能够知道网络中的哪些单元被关闭。所以,我希望能够保存或作为回调获取应用的 0 和 1 的 dropout 张量。我想知道这里是否有人可能知道这样做的方法。
非常感谢, 沃德
deep-learning - eval() 模式下的训练模型在 PyTorch 中提供更好的结果?
我有一个带有 Dropout 层的模型(p=0.6)。我最终以.eval()
mode 训练模型并再次以 mode 训练模型.train()
,我发现训练.eval()
模式给了我更好的准确性和更快的训练数据损失减少,
train()
:火车损失:0.832,验证损失:0.821
eval()
:火车损失:0.323,验证损失:0.251
为什么会这样?
python - 直接在 tensorflow 中的 Dropout 层:如何训练?
在 Keras 中创建模型后,我想获取渐变并使用 tf.train.AdamOptimizer 类直接在 Tensorflow 中应用它们。但是,由于我使用的是 Dropout 层,我不知道如何告诉模型它是否处于训练模式。不接受培训关键字。这是代码:
即使有 dropout ,我也会在有和没有 dropout 层的情况下得到相同的行为rate=1
。如何解决这个问题?
machine-learning - Keras:如何在训练和测试阶段使用 dropout?
是否可以在 Keras 的训练和测试阶段使用 dropout?
就像这里描述的: https ://github.com/soumith/ganhacks#17-use-dropouts-in-g-in-both-train-and-test-phase
python - 调用初始化的 tf.keras.Model 在模型内的 Dropout 层上给出尺寸不匹配
我正在尝试保存模型中包含 2 个 dropout 层的 TF Keras 模型(这是一个注意模型 - 第一个 dropout 用于注意权重,第二个用于该层的整体输出)。但是,当我使用此模型并使用 2 个参数调用它时,我收到一条错误消息,指出我的输入之间存在维度不匹配,我不确定这是从哪里来的。
我真的无法发布代码。我知道这有点含糊,但我可以在下面发布回溯。任何关于我应该考虑的检查/可能出错的建议将不胜感激。谢谢!
我的一般代码是:
错误:
编辑:修复了“代码”。我的意思是写model_inputs。我在这里发布的代码不是实际的代码,它只是有点相似。这很可能是我进行注意力权重计算的地方,但我不确定要寻找什么,因为代码有点长。谢谢!
keras - 如何在 LSTM 网络 (Keras) 中使用 Dropout 和 BatchNormalization
我正在使用 LSTM 网络进行多变量多时间步长预测。所以基本上seq2seq
预测将一些n_inputs
输入到模型中以预测n_outputs
时间序列的数量。
我的问题是如何有意义地应用Dropout
,BatchnNormalization
因为这似乎是 Recurrent 和 LSTM 网络的一个高度讨论的话题。为了简单起见,让我们坚持使用 Keras 作为框架。
案例 1:香草 LSTM
- Q1:不直接在 LSTM 层之后使用 BatchNormalization 是一种好习惯吗?
- Q2:在 LSTM 层中使用 Dropout 是一种好习惯吗?
- Q3:在密集层之间使用 BatchNormalization 和 Dropout 是好的做法吗?
- Q4:如果我堆叠多个 LSTM 层,在它们之间使用 BatchNormalization 是个好主意吗?
案例 2:编码器解码器,如具有时间分布层的 LSTM
- Q5:在层间使用时应该
BatchNormalozation
和Dropout
包裹在里面,还是不用它们是正确的?TimeDistributed
TimeDistributed(Dense())
- Q6:可以或应该在编码器-解码器 LSTM 块之后、之前或之间应用批标准化吗?
Q7:如果将一个
ConvLSTM2D
层用作第一层(编码器),这会对 Dropout 和 BatchNormalization 的使用产生影响吗?Q8:
recurrent_dropout
参数应该在 LSTM 块中使用吗?如果是,它应该与dropout
示例中的普通参数结合使用,还是应该交换?非常感谢您!
tensorflow - TOCO 无法将 .pb 转换为 .tflite keras 的 ConverterError
我正在从 json 文件中加载一个 keras 模型,如下所示:
我的 keras 模型定义如下:
加载模型并将其转换为 .pb 格式后,我正在尝试将模型原型缓冲区转换为 tflite 模型,如下所示:
但我收到以下错误:
我试图做这样的事情:
但这似乎不起作用。
消除错误的任何想法。我看到了这一点,并试图将 Dropout 置于测试模式,但没有可行的选择。