问题标签 [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.
tensorflow - 向预训练模型 Yolo v1 添加 dropout
我从https://github.com/lovish1234/YOLOv1获得了 Yolo v1 代码(如果添加此链接有许可证问题,请联系我)
据我所知,与 Yolo v1 论文不同,该代码不包含 dropout。同样根据原始论文,他们在第一个连接层之后添加了一个 rate=0.5 的 dropout 层,以防止层之间的共同适应。
所以我将代码更改为
我期待一个积极的结果。但是添加 dropout 后的训练会降低它的功能。有些甚至没有显示框,而对于那些显示的框,框是错误的,并且信心较低。
我找不到我得到这些结果的原因。(我的猜测是经过训练的模型在某处包含 dropout,或者在预训练模型中添加 dropout 层会降低其功能。)
这是我必须做的一个重要项目。但我是 TensorFlow 的新手。如果这是一个简单的问题,请原谅我。另外,如果有人知道答案,请告诉我。谢谢你。
python - 如何使用 Keras API 在 TensorFlow Eager 中将 dropout 应用于 RNN 的输出?
我想将 dropout 应用于 RNN 的输出。例如,在 Tensorflow 1.8.0 中,我可以这样做:
如何使用 Keras API 实现相同的目标?
我想过以下两种方法,但都没有成功:
python - 卷积神经网络(张量流)中损失函数的周期性模式
我正在使用在 Tensorflow 中实现的卷积神经网络 (cnn) 进行图像分割。我有两个类,我使用交叉熵作为损失函数和 Adam 优化器。我正在用大约 150 张图像训练网络。
在训练过程中,我看到了这种周期性模式,训练损失会下降,直到它有几个高值,然后它迅速下降到之前的水平。
在验证损失中也可以观察到类似的模式,验证损失会在几个时期内周期性下降,然后回到之前的水平。
通过降低学习率,这种模式不再可见,但损失更高,联合拦截(IoU)要低得多。
编辑:我发现我有两次带有两个略有不同标签的图像。我还注意到这种模式与 drop_out 有关,在训练图像被学习到 100% 之后,drop_out 会导致在某些迭代中训练误差增加很多,这会导致峰值。有人在辍学时经历过这样的事情吗?
有人见过这样的模式吗?这可能是什么原因?
keras - 将 Dropout 与 Keras 和 LSTM/GRU 单元一起使用
在 Keras 中,您可以像这样指定 dropout 层:
但是对于 GRU 单元,您可以将 dropout 指定为构造函数中的参数:
有什么不同?一个比另一个更可取吗?
在Keras 的文档 中,它将其添加为单独的 dropout 层(请参阅“使用 LSTM 进行序列分类”)
r - 如何从原始数据创建累积辍学率表
我正在尝试修改此处发布的解决方案 从原始数据创建队列辍学率表
我想使用这些数据创建一个累积辍学率表。
到目前为止,我已经能够达到这一点
累积辍学率表反映了一个班级内多年来辍学的学生比例。
标题的最后两列显示,到 2014-2015 年年底,60% 的第一组学生辍学;到 2015-2016 年末,第一组 80% 的学生辍学。
我想为第 2 组和第 3 组计算相同的值,但我不知道该怎么做。
tensorflow - Tensorflow:了解带和不带 Dropout Wrapper 的 LSTM 输出
我正在使用 TensorFlow 1.8.0。
我预计 的输出y2
与使用相同y1
的y2
LSTM 单元相同,y1
只是它也通过了 dropout 层。由于 dropout 仅应用于 LSTM 单元的输出,因此我认为 的值y2
将与y1
这里和那里的几个 0 相同。但这就是我得到的y1
:
和y2
:
中的非零值y2
与 中相应位置的值完全不同y1
。
这是一个错误还是我对在 LSTM 单元的输出上应用 dropout 意味着什么有错误的想法?
python - 使用 Dropout 层的 noise_shape。Batch_size 不适合提供的样本。该怎么办?
我在我的模型中使用了一个 dropout 层。当我使用时态数据时,我希望每个时间步的noise_shape相同- > (batch_size, 1, features)。
问题是如果我使用的批量大小不适合提供的样本,我会收到一条错误消息。示例:batch_size = 2, samples= 7。在最后一次迭代中,batch_size (2) 大于其余样本 (1)
其他层(我的情况:Masking、Dense 和 LSTM)显然对此没有问题,只需对最后一个不合适的样本使用较小的批次。
ConcreteError:训练数据形状为:[23, 300, 34] batchsize=3
InvalidArgumentError(参见上面的回溯):不兼容的形状:[2,300,34] vs. [3,1,34] [[Node: dropout_18/cond/dropout/mul = Mul[T=DT_FLOAT, _device="/job:localhost /replica:0/task:0/device:CPU:0"](dropout_18/cond/dropout/div, dropout_18/cond/dropout/Floor)]]
这意味着对于最后一批 [ 2,300,34 ],batch_size 不能拆分为 [ 3,1,34 ]
由于我仍处于参数调整阶段(是否会停止:-)),
- 回顾(使用 LSTM),
- 训练/验证/测试的拆分百分比,
- 和批量
仍然会不断变化。所有提到的都会影响训练数据的实际长度和形状。
我可以尝试通过一些计算总是找到下一个适合batch_size的 int。例如,如果batch_size = 4 和samples=21,我可以将batch_size减少到3。但是如果训练样本的数量是例如素数,这又是行不通的。另外,如果我选择 4,我可能想要 4。
我想复杂吗?有没有很多异常编程的简单解决方案?
谢谢
machine-learning - 为什么初始网络中没有 dropout 层?
我最近在实现 InceptionNet,遇到了在早期或中期阶段根本没有在网络中实现 dropout 层的场景。这有什么特别的原因吗?
python - 两个 Conv 层之间的 Dropout 和 Batchnormalization
我很想知道两个卷积层之间的 dropout 是如何工作的。L
如果层中特征图的维度是(m, n_h, n_w, n_c)
,并且大小的过滤器(f, f, n_c)
在其上进行卷积,我们是否在执行卷积之前随机关闭n_c
层中通道中的一些单元L
?MaxPool 层上的 Dropout 很简单。
批量标准
第三列是层的参数个数。对于 batchnorm 层,我们是否对批次中的每个特征图进行规范化,以便对于每个特征图我们将有 4 个参数,因此在我的情况下,我有32*4 = 128
参数?如果我错了,有人可以纠正我。我假设我的假设是错误的,因为我在某个地方读到了我们在整个渠道中标准化的内容。但这并没有计算层的参数数量。