运行时错误:张量的元素 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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...