Pytorch 通过主动学习训练的自我注意模型在几次迭代后停止学习

Pytorch 通过主动学习训练的自我注意模型在几次迭代后停止学习,pytorch,Pytorch,我正在PyTorch中实现的自我关注模型上进行不确定性抽样的主动学习。算法工作如下(步骤3-7重复14次迭代): 现在,该模型在前2-3次迭代中表现良好,并显示了要在验证集上学习的内容。然而,在以后的迭代中,它完全停止学习,并显示相同的训练和验证精度和损失。然后,测试精度始终下降到随机分类器的精度(约33%),如您在此处所见: 相反,测试精度应该提高,因为模型是在更大的数据集上训练的。我真的不明白为什么会这样。每次迭代中使用的代码完全相同,我总是在重新训练之前重置权重。这是我用来重置权重的代码

我正在PyTorch中实现的自我关注模型上进行不确定性抽样的主动学习。算法工作如下(步骤3-7重复14次迭代):

现在,该模型在前2-3次迭代中表现良好,并显示了要在验证集上学习的内容。然而,在以后的迭代中,它完全停止学习,并显示相同的训练和验证精度和损失。然后,测试精度始终下降到随机分类器的精度(约33%),如您在此处所见:

相反,测试精度应该提高,因为模型是在更大的数据集上训练的。我真的不明白为什么会这样。每次迭代中使用的代码完全相同,我总是在重新训练之前重置权重。这是我用来重置权重的代码:

def reset_weights(m):
    for layer in m.children():
        if hasattr(layer, 'reset_parameters'):
            layer.reset_parameters()
然后:

model.apply(reset_weights)
这是否与PyTorch处理缓存的方式有关?同样的程序在使用Keras实现的模型上也可以很好地工作

model.apply(reset_weights)