亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Pytorch 自定義優化器得到一個空的參數列表

Pytorch 自定義優化器得到一個空的參數列表

桃花長相依 2022-10-11 16:10:41
新來的。我正在嘗試在 PyTorch 中創建一個自定義優化器,其中反向傳播發生在元 RL 策略中,該策略接收模型參數并輸出所需的模型參數。但是,我看到了上述錯誤。我的模型在 Adam 和 SGD 上運行良好,但不是我的優化器。代碼:class MetaBackProp(torch.optim.Optimizer):    def __init__(self, params):        self.param_shape_list = np.array([])        for param in list(params):            np.append(self.param_shape_list, list(param.size()))        pseudo_lr = 1e-4        pseudo_defaults = dict(lr=pseudo_lr)        length = 100 #TODO: get shape, flatten, multiply...        self.policy = AEPolicy(length)        self.policy_optim = torch.optim.Adam(self.policy.parameters(), lr=pseudo_lr)        super(MetaBackProp, self).__init__(params, pseudo_defaults)    def step(self, closure=None):        params = torch.cat([p.view(-1) for p in self.param_groups])        self.policy_optim.zero_grad()        quit()追溯: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
查看完整描述

1 回答

?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

您使用 檢索參數self.discriminator2.parameters(),它返回一個迭代器。在您的構造函數中,您將它們轉換為 for 循環的列表:

for param in list(params):

這會消耗迭代器,但是您將相同的迭代器傳遞給基類的構造函數,因此它根本不包含任何參數。

super(MetaBackProp, self).__init__(params, pseudo_defaults)

您可以使用從迭代器創建的列表,而不是傳遞迭代器,因為參數只需要是可迭代的,列表是。

# Convert parameters to a list to allow multiple iterations

params = list(params)

for param in params:


查看完整回答
反對 回復 2022-10-11
  • 1 回答
  • 0 關注
  • 300 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號