当前位置:   article > 正文

【调试问题】RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn_runtimeerror:element

runtimeerror:element

RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn

出现这种错误是因为,构建Variable, 要注意得传入一个参数requires_grad=True, 这个参数表示是否对这个变量求梯度, 默认的是False, 也就是不对这个变量求梯度。
错误代码

import torch
x=torch.randn(3)#生成一维随机数
y=x*2
y.backward(torch.FloatTensor([1,0.1,0.01]))#自动求导
print(x.grad)#求对x的梯度
  • 1
  • 2
  • 3
  • 4
  • 5

错误提示

RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
  • 1

正确代码

import torch
x=torch.randn(3)
x=Variable(x,requires_grad=True)#生成变量
print(x)#输出x的值
y=x*2
y.backward(torch.FloatTensor([1,0.1,0.01]))#自动求导
print(x.grad)#求对x的梯度
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

输出

tensor([-0.1549,  0.8560,  0.2398], requires_grad=True)
tensor([2.0000, 0.2000, 0.0200])
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/57804
推荐阅读
相关标签
  

闽ICP备14008679号