Python Pytorch自定义优化器获取了一个空参数列表

Python Pytorch自定义优化器获取了一个空参数列表,python,optimization,pytorch,generative-adversarial-network,Python,Optimization,Pytorch,Generative Adversarial Network,新来的。我试图在PyTorch中创建一个自定义优化器,其中backprop在meta-RL策略中发生,策略接收模型参数并输出所需的模型参数。然而,我看到了上述错误。我的模型在Adam和SGD上工作得很好,但我的优化器不行 代码: 回溯: Traceback (most recent call last): File "main.py", line 6, in <module> gan = CycleGAN() File "/home/ai/Projects_v2/R/

新来的。我试图在PyTorch中创建一个自定义优化器,其中backprop在meta-RL策略中发生,策略接收模型参数并输出所需的模型参数。然而,我看到了上述错误。我的模型在Adam和SGD上工作得很好,但我的优化器不行

代码:

回溯:

Traceback (most recent call last):
  File "main.py", line 6, in <module>
    gan = CycleGAN()
  File "/home/ai/Projects_v2/R/cycle_gan.py", line 32, in __init__
    self.discriminator2_optim = MetaBackProp(self.discriminator2.parameters())
  File "/home/ai/Projects_v2/R/lr_schedule.py", line 34, in __init__
    super(MetaBackProp, self).__init__(params, pseudo_defaults)
  File "/home/ai/anaconda3/lib/python3.7/site-packages/torch/optim/optimizer.py", line 46, in __init__
    raise ValueError("optimizer got an empty parameter list")
ValueError: optimizer got an empty parameter list
回溯(最近一次呼叫最后一次):
文件“main.py”,第6行,在
甘=环基甘()
文件“/home/ai/Projects\u v2/R/cycle\u gan.py”,第32行,在__
self.discriminator2\u optim=MetaBackProp(self.discriminator2.parameters())
文件“/home/ai/Projects\u v2/R/lr\u schedule.py”,第34行,在__
super(MetaBackProp,self)。\uuuuu init\uuuuuuu(参数,伪默认值)
文件“/home/ai/anaconda3/lib/python3.7/site packages/torch/optim/optimizer.py”,第46行,在__
raise VALUERROR(“优化器得到一个空参数列表”)
ValueError:优化器获取的参数列表为空

使用返回迭代器的
self.discriminator2.parameters()
检索参数。在构造函数中,您将它们转换为for循环的列表:

用于列表中的参数(参数):
这将使用迭代器,但您将该迭代器传递给基类的构造函数,因此它根本不包含任何参数

super(MetaBackProp,self)。\uuuuu init\uuuu(参数,伪默认值)
您可以使用从迭代器创建的列表,而不是传递迭代器,因为参数只需要是iterable,而列表是可编辑的

#将参数转换为列表以允许多次迭代
参数=列表(参数)
对于参数中的参数:
Traceback (most recent call last):
  File "main.py", line 6, in <module>
    gan = CycleGAN()
  File "/home/ai/Projects_v2/R/cycle_gan.py", line 32, in __init__
    self.discriminator2_optim = MetaBackProp(self.discriminator2.parameters())
  File "/home/ai/Projects_v2/R/lr_schedule.py", line 34, in __init__
    super(MetaBackProp, self).__init__(params, pseudo_defaults)
  File "/home/ai/anaconda3/lib/python3.7/site-packages/torch/optim/optimizer.py", line 46, in __init__
    raise ValueError("optimizer got an empty parameter list")
ValueError: optimizer got an empty parameter list