如何解决运行时错误:张量的元素 0 不需要 grad 并且没有用于非神经网络实现的 grad_fn
我正在做一个项目,我在 Pytorch 的自动微分器中遇到了一些有趣的错误。
我正在尝试最小化与 x 值相关的函数。为此,我使用了本文底部的代码。据我了解,我应该能够做出初步猜测,将 requires_grad 标志设置为 true 并运行前向传递 (scores = alpha(Xsamples,model,robustness)),然后使用 score.backward() 和然后使用optimizer.step相应地更新我的初始猜测。但是,当我尝试运行它时,我收到以下错误“运行时错误:张量的元素 0 不需要 grad 并且没有 grad_fn”,我不明白,因为我已将初始猜测设置为需要梯度。我尝试在论坛上寻求帮助,但大多数答案都与训练神经网络有关,因此他们的修复在这种情况下不起作用。任何有关这方面的指导将不胜感激,谢谢。
epoch = 100
learning_rate = 0.01
N = 1
Xsamples = torch.randn(1,2)
Xsamples.requires_grad = True
optimizer = torch.optim.SGD([Xsamples],lr = learning_rate)
for i in range(epoch):
scores = alpha(Xsamples,robustness)
scores.backward() #dscore/ dx
optimizer.step()
optimizer.zero_grad()
return Xsamples
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。