示例代码:
import torch
from torch.nn import functional as F
x = torch.randn(1, 10)
w = torch.randn(1, 10, requires_grad=True)
# 对输出用sigmoid激活
o = torch.sigmoid(x @ w.t())
print("输出值:", o)
# 计算MSE
loss = F.mse_loss(torch.ones(1, 1), o)
print("损失:", loss)
# 计算梯度
loss.backward()
print("损失对w的导数:", w.grad)
输出结果:
输出值: tensor([[0.9352]], grad_fn=<SigmoidBackward>)
损失: tensor(0.0042, grad_fn=<MeanBackward1>)
损失对w的导数: tensor([[-0.0051, -0.0106, 0.0006, -0.0090, -0.0068, -0.0035, 0.0017, 0.0010, -0.0099, 0.0064]])