pytorch - 在训练期间更改 Dropout 值
问题描述
如何在训练期间更改 Dropout?例如
Dropout= [0.1, 0.2, 0.3]
我尝试将它作为列表传递,但我无法使其工作。
解决方案
要在训练期间更改 dropout 概率,您应该使用functional
版本,即torch.nn.functional.dropout
.
dropout 的功能版本的输入参数是
- 输入张量
- 辍学概率(您可以更改)
- 一个布尔值,表示它是否处于训练模式(您可以使用
self.training
) - 和一个标志,指示您是否希望在适当的位置执行操作。
因此,您可以根据需要更改forward
方法中丢失的概率。
例如,您可以在您的forward
方法中执行以下操作:
def forward(self, x):
...
# apply some layers to the input
h = self.my_layers(x)
# set the value of p
p = self.get_value_for_p()
# apply dropout with new p
h = torch.nn.functional.dropout(h, p, self.training)
...
More on the functional version of dropout, here: https://pytorch.org/docs/stable/nn.functional.html#dropout-functions
推荐阅读
- c# - Fluent Validation - NotEmpty() 和 NotNull() 方法的单一错误消息
- bash - 在 MacOS bash 上制作 ẞ 小写
- multithreading - 杀死所有挂起DLL Delphi引起的线程
- java - 添加到不重复的链表(util)
- python - 复制文件时在控制台中显示进度条。在 python 中使用 tqdm
- javascript - 在AngularJS控制器中编译html中的表达式
- r - 我可以将 NetLogo 与另一个程序结合起来吗?
- javascript - 在 WebRTC 中取消静音麦克风后,出现严重的本地环回(自己的声音)问题
- windows - 无法重置
- excel - 使用ods excel语句时停止Excel转换保存为字符的数字