Pythorch 0.3.1版
编辑:我把这个问题改写得更简单,因为我已经缩小了bug的范围。在
我有一些变量:
x = ag.Variable(torch.ones(1, 1), requires_grad = True)
y = ag.Variable(torch.ones(1, 1), requires_grad = True)
z = ag.Variable(torch.ones(1, 1), requires_grad = True)
然后创建一个变量来表示它们的连接:
^{pr2}$然后我试着用导数:
ag.grad(f, x, retain_graph=True, create_graph=True)
这很好,并按预期返回1。y和z也是一样的
但是
ag.grad(f, w, retain_graph=True, create_graph=True)
返回错误:RuntimeError:无法访问差异化输入
当然这是有意义的-w在f
的声明中没有显式使用。但是,我希望一行代码可以生成类似[1; 1; 1]
的输出。在
假设我想方便地将我的变量批处理在一起,然后一次获取整个shebang的梯度,而不是独立地处理变量(这会使簿记成为一场噩梦)。有什么办法能得到我想要的结果吗?在
像这样的操作是有效的还是您想保留
f = x + y + z
?在相关问题 更多 >
编程相关推荐