使用单个优化器训练多个连接的神经网络

Jam*_*ten 0 pytorch

如何使用单个优化器联合优化包含两个不同神经网络的模型参数?初始化优化器后,我尝试过以下内容:

optim_global = optim.Adam(zip(model1.parameters(), model2.parameters()))
Run Code Online (Sandbox Code Playgroud)

但我收到这个错误

TypeError: optimizer can only optimize Tensors, but one of the params is tuple
Run Code Online (Sandbox Code Playgroud)

Iva*_*van 5

这些是您可以使用拆包操作 *符控制的生成器:

>>> optim.Adam([*model1.parameters(), *model2.parameters()])
Run Code Online (Sandbox Code Playgroud)

或者使用itertools.chain

>>> optim.Adam(chain(model1.parameters(), model2.parameters()))
Run Code Online (Sandbox Code Playgroud)