y.grad_fn.saved_variables
AttributeError Traceback (most recent call last)
<ipython-input-21-eceb35361ea8> in <module>
1 #使用retain_graph来保存这些buffer
----> 2 y.grad_fn.saved_Variables
AttributeError: 'MulBackward0' object has no attribute 'saved_Variables'
原因确实是版本问题,PyTorch0.3 中把许多python的操作转移到了C++中,saved_variables 现在是一个c++的对象,无法通过python访问。(https://github.com/chenyuntc/pytorch-book/issues/7)
解决方法:
省略上面那不操作,直接进行下一步
#使用retain_graph来保存buffer
z.backward(retain_graph=True)
w.grad
def f(x):
result = 1
for ii in x:
if ii.data[0]>0: result = ii*result
return result
x = V(t.arange(-2, 4), requires_grad = True)
y = f(x)
y.backward()
x.grad