L05_用pytorch实现线性回归

用pytorch实现线性回归

0.导入所需要的库

import torch

1.准备数据

x_data = torch.Tensor([[1],[2],[3]])
y_data = torch.Tensor([[2],[4],[6]])

2.定义线性模型

class LinearModel(torch.nn.Module):
    def __init__(self):
        super(LinearModel,self).__init__()
        self.linear = torch.nn.Linear(1,1)
        
    def forward(self,x):
        y_pred = self.linear(x)
        return y_pred

model = LinearModel()    

3.定义损失和优化器

criterion = torch.nn.MSELoss(reduction='mean')
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

4.训练

for epoch in range(50):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(f'epoch:{epoch},loss:{loss.item():.2f}')
    
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    
    
print(f'w={model.linear.weight.item():.2f},b={model.linear.bias.item():.2f}')
epoch:0,loss:7.30
epoch:1,loss:5.79
epoch:2,loss:4.59
epoch:3,loss:3.64
epoch:4,loss:2.90
epoch:5,loss:2.30
epoch:6,loss:1.84
epoch:7,loss:1.47
epoch:8,loss:1.17
epoch:9,loss:0.94
epoch:10,loss:0.76
epoch:11,loss:0.62
epoch:12,loss:0.50
epoch:13,loss:0.41
epoch:14,loss:0.34
epoch:15,loss:0.28
epoch:16,loss:0.24
epoch:17,loss:0.20
epoch:18,loss:0.17
epoch:19,loss:0.15
epoch:20,loss:0.13
epoch:21,loss:0.12
epoch:22,loss:0.11
epoch:23,loss:0.10
epoch:24,loss:0.09
epoch:25,loss:0.09
epoch:26,loss:0.08
epoch:27,loss:0.08
epoch:28,loss:0.08
epoch:29,loss:0.07
epoch:30,loss:0.07
epoch:31,loss:0.07
epoch:32,loss:0.07
epoch:33,loss:0.07
epoch:34,loss:0.07
epoch:35,loss:0.07
epoch:36,loss:0.06
epoch:37,loss:0.06
epoch:38,loss:0.06
epoch:39,loss:0.06
epoch:40,loss:0.06
epoch:41,loss:0.06
epoch:42,loss:0.06
epoch:43,loss:0.06
epoch:44,loss:0.06
epoch:45,loss:0.06
epoch:46,loss:0.06
epoch:47,loss:0.06
epoch:48,loss:0.06
epoch:49,loss:0.06
w=1.71,b=0.64

你可能感兴趣的:(研究生之深度学习,pytorch,线性回归,深度学习)