感知机(Perceptron)

本文介绍了如何使用PyTorch实现多输出感知机,通过sigmoid激活函数和MSE损失函数,演示了从单输出模型升级到处理多个输出的实例,并展示了梯度更新过程。重点在于理解多输出感知机的结构和训练策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

感知机

单一输出感知机

Perceptron
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZFOgfgoj-1644507323774)(H:\codes\pytorch\Deep_Learning_PyTorch_note\感知机.assets\image-20220125155808587.png)]

>>> x=torch.randn(1,10)
>>> w=torch.randn(1,10,requires_grad=True)
>>> o=torch.sigmoid(x@w.t())
>>> o.shape
torch.Size([1, 1])
>>> loss=F.mse_loss(torch.ones(1,1),o)
>>> loss.shape
torch.Size([])
>>> loss.backward()
>>> w.grad
tensor([[ 2.8638e-04, -1.2158e-04,  4.6992e-04, -6.7869e-04, -3.7104e-04,
          1.3603e-04, -3.2423e-04,  3.9840e-05, -7.9040e-04,  3.5146e-04]])

多输出感知机

Multi-output Perceptron
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-et6Ct9Uj-1644507323777)(H:\codes\pytorch\Deep_Learning_PyTorch_note\感知机.assets\image-20220125155939860.png)]

>>> x=torch.randn(1,10)
>>> w=torch.randn(2,10,requires_grad=True)
>>> o=torch.sigmoid(x@w.t())
>>> o.shape
torch.Size([1, 2])
>>> loss=F.mse_loss(torch.ones(1,2),o)
>>> loss
tensor(0.2884, grad_fn=<MseLossBackward>)
>>> loss.backward()
>>> w.grad
tensor([[ 1.2850e-01, -3.1896e-01,  1.2666e-01, -5.5502e-02, -4.8003e-02,
          7.3731e-02, -3.3998e-01,  2.8499e-01, -1.2586e-01,  1.4811e-01],
        [ 2.2933e-05, -5.6922e-05,  2.2603e-05, -9.9049e-06, -8.5667e-06,
          1.3158e-05, -6.0674e-05,  5.0860e-05, -2.2462e-05,  2.6432e-05]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值