pytorch 模型关闭梯度

for p in model.backbone.parameters():
    p.requires_grad = False

不但要关闭梯度

模型中的所有bn层需要手动调整到eval模式

参考博客:https://blog.csdn.net/grllery/article/details/110351465

我模型的bn层是写在nn.Sequential中的,所以我需要在训练的时候加入下面生产的设置代码

    for k, v in s1.items():
        if k.find("running_mean") != -1:
            nk = k
            nk = nk.replace(".1.running_mean", "[1]")
            print("model.{0}.eval()".format(nk))
文章目录