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

Train multiple connected neural networks with a single optimizer

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

optim_global = optim.Adam(zip(model1.parameters(), model2.parameters()))

但是我收到这个错误

TypeError: optimizer can only optimize Tensors, but one of the params is tuple

这些是您可以使用 unpacking operator *:

控制的发电机
>>> optim.Adam([*model1.parameters(), *model2.parameters()])

或使用itertools.chain

>>> optim.Adam(chain(model1.parameters(), model2.parameters()))