dropout 原理及源码实现

来自B站视频,API查阅

#nn.Dropout
m = nn.Dropout(p=0.2)
input = torch.randn(20, 16)
output = m(input)

#nn.functional.dropout
torch.nn.functional.dropout(input, p=0.5, training=True, inplace=False)
  • dropout 在训练时和测试时的表现是不一样的,但是要尽可能让两种情况逼近一致,比如引入期望相等

  • R-Drop 改进传统dropout,使得训练阶段和预测阶段dropout的差异缩小
    dropout 原理及源码实现_第1张图片
    在这里插入图片描述

  • nn.Dropout 实际上调用 nn.functional.dropout 来实现
    dropout 原理及源码实现_第2张图片

  • tf.nn.dropout 和 tf.keras.layers.Dropout 中没有提供 training 参数,必须调用者保证不是在预测阶段使用

你可能感兴趣的:(学习笔记,python,深度学习,tensorflow)