wap网站快速开发,网站后台制作,杭州网站建设推广公司,鲜花网站怎么做一句话概括#xff1a;#xff08;训练过程中#xff09;Dropout 操作 随机置零 非置零元素进行后补偿性放缩。以保证dropout前后数据scale不变。
详细解释(来自chatgpt):
在 PyTorch 中#xff0c;dropout 的操作不仅仅是将某些元素置零。为了确保期望输出在训练和测试…一句话概括训练过程中Dropout 操作 随机置零 非置零元素进行后补偿性放缩。以保证dropout前后数据scale不变。
详细解释(来自chatgpt):
在 PyTorch 中dropout 的操作不仅仅是将某些元素置零。为了确保期望输出在训练和测试时保持一致当应用 dropout 时被保留的元素会按 (1 / (1 - p)) 进行缩放其中 p 是 dropout 的概率。
具体来说如果有一个神经元的输出值为 x 并且你应用了 dropout 操作设定概率 p那么在训练期间这个值 x 有 p 的概率会被置为 0而有 1-p 的概率会被乘以 1 / (1 - p)。这样的设计是为了确保整体输出的期望值在训练时和测试时dropout 被关闭保持一致。
例如假设 p0.5则有一半的机会让 x 变为0而另一半的机会让 x 变为 2x因为 1 / (1 - 0.5) 2。这样期望的输出值是 (0.5 * 0 0.5 * 2x) x与原始的 x 相匹配。
所以在 PyTorch 的 dropout 操作中除了置零外还会对保留的元素进行缩放。
ps: 其实这个设置在dropout论文里是有阐述的并不是一个technical trick.
pytorch中的函数介绍
torch.nn.Dropout中对scale操作有介绍F.dropout里没提但是其实二者都用了scale。过分