我检查了所有的张量和输入参数,它们都是叶子,根据下面的代码,
def train_step(w1,b1):
print("w=",w1)
trainable_variables = [w1,b1]
optimizer = torch.optim.SGD(trainable_variables, lr=learning_rate)
loss = Variable(loss2_function(), requires_grad = True)
print(loss.backward())
with torch.no_grad():
w1 -=(learning_rate * w1.grad)
b1 -= (learning_rate * b1.grad)
w1.grad.zero_()
b1.grad.zero_()
optimizer.step()
optimizer.zero_grad()
我仍然没有得到任何结果,即使学习率、权重和偏差发生变化,网络仍然无法工作,请指导我。
loss.backward()
不返回任何内容。这就是为什么 print(loss.backward())
返回 None
。
您想使用
print(loss)
来代替