Pytorch Optimizer類使用小技巧總結

2021-10-11 12:26:38 字數 1468 閱讀 9079

1. 將需要固定,不參與訓練層引數的requires_grad屬性設為false:

# 在nn.modele子類內固定features層引數

for p in self.features.parameters():

p.requires_grad=false

2. 將參與訓練的層引數傳入optimizer:

param_to_optim = 

for param in self.model.parameters():

if param.requires_grad == false:

continue

optimizer = torch.optim.sgd(param_to_optim, lr=0.001, momentum=0.9, weight_decay=1e-4)

或者:

optimizer = torch.optim.sgd(filter(lambda p: p.requires_grad, model.parameters()), lr=0.001, momentum=0.9, weight_decay=1e-4)
def adjust_learning_rate(args, optimizer, epoch, gamma=0.1):

# 每訓練args.step_size個epochs,學習率衰減到gamma倍

lr = args.lr * (gamma ** (epoch // args.step_size))

for param_group in optimizer.param_groups:

param_group['lr'] = lr

# 乙個optimizer內多組引數,可以為不同組引數設定不同的學習率

optimizer = optim.sgd([,,

,,,,

], momentum=0.9, weight_decay=5e-4)

# 定義多個optimizer,訓練網路的不同模組

raw_optimizer = torch.optim.sgd(raw_parameters, lr=lr, momentum=0.9, weight_decay=wd)

concat_optimizer = torch.optim.sgd(concat_parameters, lr=lr, momentum=0.9, weight_decay=wd)

part_optimizer = torch.optim.sgd(part_parameters, lr=lr, momentum=0.9, weight_decay=wd)

partcls_optimizer = torch.optim.sgd(partcls_parameters, lr=lr, momentum=0.9, weight_decay=wd)

待續。。。

bpython使用技巧 Python 小技巧

python 隱秘的角落 1.args 和 kwargs 的使用 此處一定要注意 python 中有預設值得引數一定一定要放在沒有預設值的後邊。args 是以元組型別傳入 kwargs 是字典型別傳入 def parameter learn parameter 1,parameter 2 none,...

VI使用小技巧

1 替換某一字串 s old word new word g 在整個檔案中將old word替換為new word 2 不進入vi編輯器將檔案中的某一字串替換掉 sed s 111 aaa g 1.txt 2.txt 將1.txt中所有的111替換為aaa,修改後的檔案寫入2.txt sed s 1...

IDE使用小技巧

vc 共享樂園 1 如何檢測程式中的括號是否匹配。把游標移動到需要檢測的括號 如大括號 方括號 圓括號 和尖括號 前面,鍵入快捷鍵 ctrl 如果括號匹配正確,游標就跳到匹配的括號處 否則游標不移動,並且機箱喇叭還會發出一聲警告聲。2 如何檢視乙個巨集 或變數 函式 的巨集定義。選中此巨集,單擊滑鼠...