首页 > 解决方案 > 我如何解决backward()得到了一个意外的关键字参数'retain_variables'?

问题描述

我写了下面的代码,但我收到了这个错误:

TypeError: backward() got an unexpected keyword argument 'retain_variables'

我的代码是:

def learn(self, batch_state, batch_next_state, batch_reward, batch_action):
    outputs = self.model(batch_state).gather(1, batch_action.unsqueeze(1)).squeeze(1)
    next_outputs = self.model(batch_next_state).detach().max(1)[0]
    target = self.gamma*next_outputs + batch_reward
    td_loss = F.smooth_l1_loss(outputs, target)
    self.optimizer.zero_grad()
    td_loss.backward(retain_variables = True)
    self.optimizer.step()

标签: pythonpytorch

解决方案


我遇到了同样的问题。这个解决方案对我有用。

td_loss.backward(retain_graph = True)

有效。


推荐阅读