关于模型分成多部分时的torch.optim优化设置

上次写代码时,backbone encoder是用了别人代码,另外又添加了多分支多layer作为task decoder。

但是开始犯了个很致命的错误,在pytorch设置优化器时,仅使用了:

optimizer = torch.optim.Adam(model.parameters(), lr=args.lr, weight_decay=args.weight_decay)

这样实际上只优化了部分模型,应该这样设置:

optimizer = torch.optim.Adam([{'params': model.parameters()},
                                  {'params': jigsaw_classifier.parameters()},
                                  {'params': element_classifier.parameters()}
                                  ],
                                 lr=args.lr, weight_decay=args.weight_decay)

参考:
https://blog.csdn.net/junqing_wu/article/details/94395340

还可以对不同模型使用不同优化策略

你可能感兴趣的:(代码积累,pytorch代码积累,开发)