torch.nn.Dropout()
1. torch.nn.Dropout()
class torch.nn.Dropout(p=0.5, inplace=False)
随机将输入张量中部分元素设置为 。对于每次前向调用,被置 的元素都是随机的。
参数:
p
:将元素置 的概率。(默认:0.5)inplace
:设置为 ,会在原地执行操作。(默认:)
示例:
import torch
from torch import nn, autograd
m = nn.Dropout(p=0.5)
input = autograd.Variable(torch.randn(4, 4))
output = m(input)
print(output)
tensor([[ 2.3192, 0.0000, 0.0000, -0.0000],
[ 0.0000, 0.3854, -1.9737, -0.0000],
[-2.8518, -0.7907, -1.2949, -0.0000],
[-0.0000, -3.0302, -0.0000, -0.0000]])
2. torch.nn.Dropout2d()
class torch.nn.Dropout2d(p=0.5, inplace=False)
随机将输入张量中整个通道设置为 。对于每次前向调用,被置 的通道都是随机的。
通常输入来自 模块。
如果特征图中相邻像素是强相关的(在前几层卷集层很常见),那么nn.Dropout
不会归一化激活,而只会降低学习率。
在这种情形下,nn.Dropout2d()
可以提高特征图之间的独立程度,所以应该使用它。
参数:
p
():将元素置 的概率。(默认:0.5)inplace
():设置为 ,会在原地执行操作。(默认:)
形状:
- 输入:
- 输出:(与输入相同)
示例:
import torch
from torch import nn, autograd
m = nn.Dropout2d(p=0.2)
input = autograd.Variable(torch.randn(2, 3, 2, 2))
output = m(input)
print(output)
tensor([[[[-0.2310, 0.2985],
[-1.1936, -0.7231]],
[[-0.7498, 0.2923],
[-0.2470, -0.7570]],
[[ 2.0942, -0.2796],
[ 0.7177, 3.7006]]],
[[[-0.0000, -0.0000],
[-0.0000, 0.0000]],
[[ 0.1563, 0.9973],
[ 0.8000, 1.1723]],
[[-0.1494, 0.2946],
[-0.4893, -0.3955]]]])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)