1. 程式人生 > 其它 >pytorch損失反向傳播後梯度為none

pytorch損失反向傳播後梯度為none

技術標籤:pytorch

錯誤程式碼:輸出grad為none

a = torch.ones((2, 2), requires_grad=True).to(device)

b = a.sum()
b.backward()

print(a.grad)

由於.to(device)是一次操作,此時的a已經不是葉子節點了

修改後的程式碼為:

a = torch.ones((2, 2), requires_grad=True)
c = a.to(device)

b = c.sum()
b.backward()

print(a.grad)

類似錯誤:

self.miu = torch.nn.
Parameter(torch.ones(self.dimensional)) * 0.01

應該為

self.miu = torch.nn.Parameter(torch.ones(self.dimensional) * 0.01)