【发布时间】:2021-10-03 10:56:05
【问题描述】:
如果我运行代码:
import torch
x = torch.ones(5) # input tensor
y = torch.zeros(3) # expected output
w = torch.randn(5, 3, requires_grad=True)
b = torch.randn(3, requires_grad=True)
z = torch.matmul(x, w)+b
loss = torch.nn.functional.binary_cross_entropy_with_logits(z, y)
loss.backward()
loss = torch.nn.functional.binary_cross_entropy_with_logits(z, y)
loss.backward()
pytorch 向我吐出错误“尝试再次向后浏览图表”。我的理解是再次调用损失计算线实际上并没有改变计算图,这就是我得到这个错误的原因。但是,当我调用代码时:
import torch
x = torch.ones(5) # input tensor
y = torch.zeros(3) # expected output
w = torch.randn(5, 3, requires_grad=True)
b = torch.randn(3, requires_grad=True)
z = torch.matmul(x, w)+b
loss = torch.nn.functional.binary_cross_entropy_with_logits(z, y)
loss.backward()
z = torch.matmul(x, w)+b
loss = torch.nn.functional.binary_cross_entropy_with_logits(z, y)
loss.backward()
它工作正常(没有错误),我不明白为什么会这样,无论哪种情况,我都没有对计算图进行任何更改?
【问题讨论】:
标签: pytorch