pytorch自动求导机制的理解

学习

Posted by simplex on April 13, 2021

pytorch自动求导机制的理解

先贴一段代码

X = torch.tensor(list(range(3))).reshape(3, 1).float()
y = torch.tensor(list(range(3))).reshape(3, 1).float()
W = torch.ones((1, 1)).float() * 2
W.requires_grad = True
optimizer = optim.Adam([W])
out = F.mse_loss(F.linear(X, W)[:1], y[:1])
out.backward()
optimizer.step()
print(W)
  1. 所有自动求导都是对于tensor的
  2. 损失函数之后接,tensor的backward
  3. tensor需要设置 requires_grad = True,才能成为计算图的叶子tensor,才能更新参数
  4. optim.Adam()的第一个参数指示需要跟新参数的tensor,需要用list之类的包起来