我正在训练一个集成了mean teachers的神经网络。过程如下:
采用受监管的体系结构并复制它。让我们将原始模型称为学生,将新模型称为老师。
在每个训练步骤中,使用相同的小批量作为对学生和老师的输入,但分别向输入添加随机增强或噪声。 在softmax之后,在学生和教师的输出之间增加额外的一致性成本。
让优化器正常更新学生权重。
让老师的权重成为学生权重的指数移动平均值(EMA)。也就是说,在每个训练步骤之后,将老师的权重向学生的权重进行一些更新。
此外,tensorflow文档说EMA变量是使用(trainable = False)创建的,并已添加到GraphKeys.ALL_VARIABLES集合中。现在,由于它们不可训练,因此不会在其上应用渐变,我明白这一点。但是,由于它们取决于图形的当前可训练变量,因此,对教师网络的预测也是如此。由于ema依赖于可训练变量,是否还会有额外的梯度流向可训练变量?通常,不可训练变量会通过它们传递梯度吗?
答案 0 :(得分:1)
是的。 TLDR:造成损失的所有因素都会产生梯度。
流程如下:
如果该变量不可训练,则不会对其进行调整,但仍会传播渐变。
由于ema依赖于可训练变量,是否还会有额外的梯度流向可训练变量?
仅根据图形中的其他内容计算ema,它不会更改渐变。 但是,如果将结果合并到损耗中,则会生成梯度并传播更多的梯度以优化损耗。