def dropout(X, drop_prob):
#drop_prob是丢弃的概率
X = X.float()
assert 0 <= drop_prob <= 1
keep_prob = 1 - drop_prob
# 这种情况下把全部元素都丢弃
if keep_prob == 0:
return torch.zeros_like(X)
#小于keep_prob就能实现随机抛弃keep_prob的隐藏单元
#randn生成的是0到1之间的数,利用randn随机生成在0-keep_pob这个区间的数就是占keep_prob这么多
mask = (torch.randn(X.shape) < keep_prob).float()
#除以keep_prob是为了不改变其输出的期望的。
return mask * X / keep_prob
关于dropout
最新推荐文章于 2022-08-01 20:25:27 发布