关键词:随机深度
-
通过随机del掉一些block,将残差层改为identity层实现
-
可提高训练速度
-
可构造更深的网络,削减梯度消失现象
-
测试时残差层需要乘以一个概率(当初保留该层的概率)
network.png
实现细节
- 输出某层权值梯度的方法
model = nn.Sequential(
nn.Linear(10, 2)
)
...
loss.backward()
print(model[0].weight.grad)
- 获取保留概率的实现
self.m = torch.distributions.bernoulli.Bernoulli(torch.Tensor([self.prob]))
if torch.equal(self.m.sample(),torch.ones(1)):
# 保留
网友评论