OpenAI的REINFORCE和演员批评强化学习的例子有以下代码:
加强:
policy_loss = torch.cat(policy_loss).sum()
Run Code Online (Sandbox Code Playgroud)
loss = torch.stack(policy_losses).sum() + torch.stack(value_losses).sum()
Run Code Online (Sandbox Code Playgroud)
一个是使用torch.cat,另一个是使用torch.stack.
就我的理解而言,该文件并未对它们作出任何明确的区分.
我很高兴知道这些功能之间的差异.
我的代码中有错误,无论尝试哪种方式都无法解决。
错误很简单,我返回一个值:
torch.exp(-LL_total/T_total)
Run Code Online (Sandbox Code Playgroud)
然后在管道中获取错误:
RuntimeError: Can't call numpy() on Variable that requires grad. Use var.detach().numpy() instead.
Run Code Online (Sandbox Code Playgroud)
诸如此类的解决方案cpu().detach().numpy()也会出现相同的错误。
我该如何解决?谢谢。