感知机
单一输出感知机
Perceptron
>>> 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
>>> 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]])