深度学习与Pytorch入门实战(四)反向传播梯度

笔记摘自

1. 感知机

  • 单层感知机:
import torch
from torch.nn import functional as F

x = torch.randn(1,10)
w = torch.randn(1,10,requires_grad=True)

o = torch.sigmoid(x@w.t())        
print(o)
# tensor([[0.0056]], grad_fn=<SigmoidBackward>)

loss = F.mse_loss(o, torch.ones(1,1))    
print(loss)
# tensor(0.9888, grad_fn=<MeanBackward0>)

loss.backward()
print(w.grad)
# tensor([[ 5.1490e-03, -1.3516e-02, -3.0863e-03, -1.0879e-02,  2.0131e-03,
#           1.8913e-02, -2.1375e-02, -1.7731e-05, -5.4163e-03,  1.9385e-02]])
  • 多层感知机:
x = torch.randn(1,10)
w = torch.randn(2,10, requires_grad=True)

o = torch.sigmoid(x@w.t())     
print(o)
# tensor([[0.0043, 0.1024]], grad_fn=<SigmoidBackward>)

loss = F.mse_loss(o, torch.ones(1,2))   
print(loss)
# tensor(0.8986, grad_fn=<MeanBackward0>)

loss.backward()
print(w.grad)
# tensor([[ 3.2448e-03, -1.8384e-04,  2.6368e-05, -2.9615e-03, -1.7245e-03,
#          -3.1285e-03,  1.2093e-03,  2.1269e-03,  1.7680e-03,  8.0052e-03],
#         [ 6.2952e-02, -3.5667e-03,  5.1156e-04, -5.7457e-02, -3.3457e-02,
#          -6.0696e-02,  2.3462e-02,  4.1264e-02,  3.4302e-02,  1.5531e-01]])

2. 链式法则求梯度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值