使用pytorch实现线性回归
线性回归都是包括以下几个步骤:定义模型、选择损失函数、选择优化函数、 训练数据、测试
import torch
import matplotlib.pyplot as plt
# 构建数据集
x_data= torch.Tensor([[1.0],[2.0],[3.0],[4.0],[5.0],[6.0]])
y_data= torch.Tensor([[2.0],[4.0],[6.0],[8.0],[10.0],[12.0]])
#定义模型
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()
# 使用均方误差作为损失函数
criterion= torch.nn.MSELoss(size_average= False)
#使用梯度下降作为优化SGD
# 从下面几种优化器的生成结果图像可以看出,SGD和ASGD效果最好,因为他们的图像收敛速度最快
optimizer= torch.optim.SGD(model.parameters(),lr=0.01)
# ASGD
# optimizer= torch.optim.ASGD(model.parameters(),lr=0.01)
# optimizer= torch.optim.Adagrad(model.parameters(), lr= 0.01)
# optimizer= torch.optim.RMSprop(model.parameters(), lr= 0.01)
# optimizer= torch.optim.Adamax(model.parameters(),lr= 0.01)
# 训练
epoch_list=[]
loss_list=[]
for epoch in range(100):
y_pred= model(x_data)
loss= criterion(y_pred, y_data)
epoch_list.append(epoch)
loss_list.append(loss.item())
print(epoch, loss.item())
optimizer.zero_grad() #梯度归零
loss.backward() #反向传播
optimizer.step() #更新参数
print("w= ", model.linear.weight.item())
print("b= ",model.linear.bias.item())
x_test= torch.Tensor([[7.0]])
y_test= model(x_test)
print("y_pred= ",y_test.data)
plt.plot(epoch_list, loss_list)
plt.xlabel("epoch")
plt.ylabel("loss_val")
plt.show()
使用SGD优化器图像:
使用ASGD优化器图像:
使用Adagrad优化器图像:
使用Adamax优化器图像:
(资源库 www.zyku.net)
原文链接:https://blog.csdn.net/qq_41521512/article/details/106646318
上一篇:python实现自动化群控的步骤
栏 目:Python教程
下一篇:一小时学会Python入门教程
本文标题:使用pytorch实现线性回归
本文地址:https://www.zyku.net/python/2144.html
您可能感兴趣的文章
- 03-20oppofindx3pro连接打印机方法
- 03-29华为手机游戏免打扰设置方法
- 09-09小米手机微信双开设置默认微信登录和
- 03-10网站301跳转(重定向)正确操作方法
- 09-19小爱同学怎么识别粤语
- 01-08vivoX70Pro+拍照怎么去水印
- 09-19知到开启护眼功能教程介绍
- 01-11Zenly浏览器-Zenly浏览器应用软件功能
- 01-14知旅云学训助手-知旅云学训助手应用软
- 01-11Ready4FCE-Ready4FCE应用软件功能介绍
- 03-03oppo手机录屏设置声音方法
- 10-20苹果13怎样启用一键锁屏
- 03-04华为手机设置备忘录密码方法
- 10-12realmegtneo2如何设置简体中文
- 09-19goodnotes移动页面到其他笔记本方法介
- 01-17熊猫听听-熊猫听听应用软件功能介绍
- 12-09iqoo8pro怎么设置桌面图标大小
- 01-11小猴扫描王-小猴扫描王应用软件功能介
- 02-19Discuz!管理员无法登录后台时如何更新
- 01-09苹果优聘-苹果优聘应用软件功能介绍
最近更新
阅读排行
猜你喜欢
- 03-31vivos9拍照取消水印设置方法
- 01-11记录喝水-记录喝水应用软件功能介绍
- 03-23oppoa93修改字体大小设置教程
- 04-15小米11青春版关闭锁屏按键声教程
- 01-19手机变声器男变女-手机变声器男变女应
- 07-05Linux lprm命令
- 02-17帝国CMS-前台申请友情链接插件下载
- 02-09小米11投屏功能开启教程
- 10-15苹果12查找我的iphone功能在哪
- 02-13将pytorch的网络等转移到cuda