尽管张量是叶子,但神经网络(pytorch)中的损失却没有得到任何结果

问题描述 投票:0回答:1

我检查了所有的张量和输入参数,它们都是叶子,根据下面的代码,

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()

我仍然没有得到任何结果,即使学习率、权重和偏差发生变化,网络仍然无法工作,请指导我。

python machine-learning deep-learning pytorch neural-network
1个回答
0
投票

loss.backward()
不返回任何内容。这就是为什么
print(loss.backward())
返回
None

您想使用

print(loss)
来代替

© www.soinside.com 2019 - 2024. All rights reserved.