如何为 Pytorch 的每个模型层使用不同的优化器?

use*_*316 1 optimization pytorch

我有一个用 pytorch 构建的两层网络和两个两个不同的优化器。我想在第一层使用一个优化器,在第二层使用其他优化器。这可能吗?

fla*_*awr 6

是的,这是可能的:初始化优化器时,您需要向其传递要优化的参数,这是您必须进行此划分的地方。例如:

import torch.nn as nn
import torch.optim

net = nn.Sequential(
    nn.Linear(1, 3),
    nn.Linear(3, 5),
    nn.Linear(5, 1)
)

opt1 = torch.optim.Adam(params=net[0].parameters(), lr=0.1)
opt2 = torch.optim.Adam(params=[*net[1].parameters(), *net[2].parameters()], lr=0.001)
Run Code Online (Sandbox Code Playgroud)