程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

torch.compile() 无法保留/向后毕业?

发布于2023-05-30 00:54     阅读(148)     评论(0)     点赞(11)     收藏(5)


我不能在编译函数中对非叶张量进行反向渐变。张量仍然没有梯度,即使retain_grad被称为

重现问题的示例代码:

import torch

@torch.compile
def f(v):
    v2 = v+1
    v2.retain_grad()
    v2.sum().backward()
    return v2.grad

v=torch.rand(4, requires_grad = True)
out=f(v)
print(out)

没有@torch.compile装饰器,输出是tensor([1., 1., 1., 1.])期望的,但是使用@torch.compile装饰器,输出是None伴随着警告:

UserWarning: The .grad attribute of a Tensor that is not a leaf Tensor is being accessed. Its .grad attribute won't be populated during autograd.backward(). If you indeed want the .grad field to be populated for a non-leaf Tensor, use .retain_grad() on the non-leaf Tensor. If you access the non-leaf Tensor by mistake, make sure you access the leaf Tensor instead. See github.com/pytorch/pytorch/pull/30531 for more informations. (Triggered internally at aten/src/ATen/core/TensorBody.h:486.)
  example_value = grapharg.example.grad

它与火炬发电机中的图形中断有关吗?我错过了什么吗?在 google colab 上使用 pytorch 2.0.0+cu118。


解决方案


暂无回答



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1983590/3895da42ff6e443043cc/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)