gpt4 book ai didi

pytorch - 如何在pytorch中复制 `grad_fn`?

转载 作者:行者123 更新时间:2023-12-05 08:07:13 25 4
gpt4 key购买 nike

>>> print(foo.grad_fn)
<AddBackward0 object at 0x7f7f9f450710>

我想从 foo.grad_fn 复制到 bar.grad_fn。作为引用,不需要 foo.data。我只想复制 gradient

这可能吗?我尝试了以下但失败了。

>>> bar.grad_fn = foo.grad_fn
AttributeError: attribute 'grad_fn' of 'torch._C._TensorBase' objects is not writable

谢谢。

最佳答案

其实很简单。您只需执行 foo.grad.data 即可访问存储在叶张量中的梯度。因此,如果您想将渐变从一片叶子复制到另一片叶子,只需在调用 backward 之后执行 bar.grad.data.copy_(foo.grad.data)。请注意,data 用于避免在计算图中跟踪此操作。

如果它不是叶子,当你必须在 backward 中指定可选参数 retain_graph=True 时。

但是,我不确定您这样做的目的是什么。我不明白为什么将梯度从一个张量复制到另一个张量会有用。如果您告诉我们更多关于您实际想要实现的目标,也许有人会给您更有帮助的答案。

关于pytorch - 如何在pytorch中复制 `grad_fn`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56106983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com