如何冻结一个模型的子模型,而不影响具有相同预测试权重的另一个子模型?

扎眼的阳光 pytorch 464

原文标题How to freeze a sub-model for one model, without affecting another sub-model with same pretrianed weightes?

我有一个由model_1,model_2,model_3组成的模型。流程是model_1和model_2 >>> model_3,如何设置模型_1不更新而model_2更新。注意model_1和model_2具有相同的结构和预训练的权重在训练过程的开始。当我为 model_1 和 model_2 加载一个预训练权重,并在 init 中冻结 model_1 时,我发现两个模型(model_1 和 model_2)在 trianing 中都没有更新。

原文链接:https://stackoverflow.com//questions/71448485/how-to-freeze-a-sub-model-for-one-model-without-affecting-another-sub-model-wit

回复

我来回复
  • Tamir的头像
    Tamir 评论

    您可以覆盖模型的 train() 和 eval() 方法,这样它们只会改变您想要的子模型。

    关于 train() 的示例和更多信息:model.train() 在 PyTorch 中做了什么?

    2年前 0条评论