介绍
这篇文章主要介绍”pytorch实现线性回归的方法”,在日常操作中,相信很多人在pytorch实现线性回归的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“pytorch实现线性回归的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
线性回归都是包括以下几个步骤:定义模型,选择损失函数,选择优化函数,,训练数据,测试
import 火炬 import matplotlib.pyplot  as plt #,构建数据集 x_data=https://www.yisu.com/zixun/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]]) #定义模型 类LinearModel (torch.nn.Module): def __init__(自我): 超级(LinearModel自我). __init__ () 自我。线性=torch.nn.Linear(1,1) #表示输入输出都只有一层,相当于前向传播中的函数模型,因为我们一般都不知道函数是什么形式的 def向前(自我,x): y_pred=self.linear (x) 返回y_pred 模型=LinearModel () #使用均方误差作为损失函数 标准=torch.nn。MSELoss (size_average=False) #使用梯度下降作为优化SGD #从下面几种优化器的生成结果图像可以看的出,SGD和ASGD效果最好,因为他们的图像收敛速度最快 优化器=torch.optim.SGD (model.parameters (), lr=0.01) # ASGD #优化器=torch.optim.ASGD (model.parameters (), lr=0.01) #优化器=torch.optim.Adagrad (model.parameters (), lr=0.01) #优化器=torch.optim.RMSprop (model.parameters (), lr=0.01) #优化器=torch.optim.Adamax (model.parameters (), lr=0.01) #训练 epoch_list=[] loss_list=[] 时代的范围(100): y_pred=模型(x_data) 损失=标准(y_pred y_data) epoch_list.append(时代) loss_list.append (loss.item ()) 打印(时代,loss.item ()) optimizer.zero_grad() #梯度归零 loss.backward() #反向传播 optimizer.step() #更新参数 打印(“w=", model.linear.weight.item ()) 打印(" b=" model.linear.bias.item ()) x_test=torch.Tensor ([[7.0]]) y_test=模型(x_test) 打印(“y_pred=", y_test.data) plt。情节(epoch_list loss_list) plt.xlabel(“时代”) plt.ylabel (“loss_val”) plt.show ()
使用SGD优化器图像:,,,,,,,,,,,,,,,,,,,,,,,,,,,,
使用ASGD优化器图像:
使用Adagrad优化器图像:,,,,,,,,,,,,,,,,,,,,,,,,,
使用Adamax优化器图像:
到此,关于“pytorch实现线性回归的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!