在对抗设置中为鉴别器和模型的其余部分分离优化器

时间:2017-11-15 04:49:41

标签: python pytorch

我有一个包含以下组件的模型。

  1. 嵌入图层
  2. 编码器
  3. 发生器
  4. 鉴别
  5. 前馈神经网络
  6. 我想定义两个优化器。一个仅用于鉴别器,另一个用于其余鉴别器。我正在做以下事情。

    optimizers = []
    model_params = chain(model.embedding.parameters(), model.encoder.parameters(), 
                                model.generator.parameters(), model.ffnn.parameters())
    optimizers.append(optim.Adam(model_params, args.lr))
    optimizers.append(optim.Adam(model.discriminator.parameters(), args.lr))
    

    还有更好的方法吗?例如,我可以区分model.parameters()model.discriminator.parameters()吗?如果是,我该怎么做?

1 个答案:

答案 0 :(得分:0)

不,因为model.parameters()返回一个生成器。如果你想像你想要的那样修改一个生成器,你还是要将它转换成一个列表。