Paddle 【论文复现】core_avx.VarBase 如何set gradient?

ncgqoxb0  于 2022-04-21  发布在  Java
关注(0)|答案(8)|浏览(252)

Hi,
请问如何手动对一个core_avx.VarBase set gradient? 我看到只有set_value 函数 和 获得gradient 的函数, 但没有发现set gradient

谢谢

dzjeubhm

dzjeubhm1#

VarBase 是一个op的输入或者输出吧,可以直接对这个variable stop_gradient

3z6pesqy

3z6pesqy2#

@ceci3 我不是想stop gradient, 而是修改gradient 的值。 例如在torch里面的tensor, tensor.grad.data 可以直接对gradient 赋值, 想知道paddle 的VarBase 对象有无类似对gradient 赋值的方法

yhived7q

yhived7q3#

获得gradient之后调用set_value就可以了吧,比如 a.gradient().set_value()

velaa5lx

velaa5lx5#

@ceci3 a.gradient().set_value() 这个方法应该不行, 因为a.gradient() 在backwards 之前是None, 我希望的是类似pytorch 的save_for_backward函数,这样我可以手动硬set 这个variable的gradient 值。 有无办法实现 类似 pytorch 这个例子呢? https://pytorch.org/tutorials/beginner/examples_autograd/two_layer_net_custom_function.html

谢谢

h6my8fg2

h6my8fg26#

save_for_backward 在上面的示例里是保存前向的input吧? 相应接口在paddle里是没有的.. 或者可以通过hook试下?

zyfwsgd6

zyfwsgd67#

我也遇到了相似的需求,请问楼主解决了吗,怎么硬设置gradient?

kxe2p93d

kxe2p93d8#

我展示了一个方法在issue #32500, 仅供参考!

相关问题