pytorch 實現(xiàn)模型不同層設置不同的學習率方式
在目標檢測的模型訓練中, 我們通常都會有一個特征提取網(wǎng)絡backbone, 例如YOLO使用的darknet SSD使用的VGG-16。
為了達到比較好的訓練效果, 往往會加載預訓練的backbone模型參數(shù), 然后在此基礎上訓練檢測網(wǎng)絡, 并對backbone進行微調, 這時候就需要為backbone設置一個較小的lr。
class net(torch.nn.Module):
def __init__(self):
super(net, self).__init__()
# backbone
self.backbone = ...
# detect
self....
在設置optimizer時, 只需要參數(shù)分為兩個部分, 并分別給定不同的學習率lr。
base_params = list(map(id, net.backbone.parameters()))
logits_params = filter(lambda p: id(p) not in base_params, net.parameters())
params = [
{"params": logits_params, "lr": config.lr},
{"params": net.backbone.parameters(), "lr": config.backbone_lr},
]
optimizer = torch.optim.SGD(params, momentum=config.momentum, weight_decay=config.weight_decay)
以上這篇pytorch 實現(xiàn)模型不同層設置不同的學習率方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
利用Python產(chǎn)生加密表和解密表的實現(xiàn)方法
這篇文章主要介紹了利用Python產(chǎn)生加密表和解密表的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-10-10
python的數(shù)據(jù)與matlab互通問題:SciPy
這篇文章主要介紹了python的數(shù)據(jù)與matlab互通問題SciPy,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
詳解Python如何實現(xiàn)對比兩個Excel數(shù)據(jù)差異
這篇文章主要為大家詳細介紹了Python是如何實現(xiàn)對比兩個Excel數(shù)據(jù)差異的,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下2022-12-12

