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))