首页 > 其他分享 >PyTorch 深度学习实践第五讲(用PyTorch实现线性回归)

PyTorch 深度学习实践第五讲(用PyTorch实现线性回归)

时间:2022-12-21 21:01:45浏览次数:48  
标签:__ pred self torch 第五 print PyTorch 线性 model

基本步骤

PyTorch 深度学习实践第五讲(用PyTorch实现线性回归)_父类

上课代码

import torch

x_data = torch.Tensor([[1.0], [2.0], [3.0]])
y_data = torch.Tensor([[2.0], [4.0], [6.0]]) #x与y必须是矩阵

class LinearModel(torch.nn.Module): #继承自Module,Module自动实现基本图(实现backward过程)
def __init__(self): #初始化对象默认调用的函数
super(LinearModel,self).__init__() #调用父类的构造函数
self.linear = torch.nn.Linear(1,1) #构造一个对象,包含权重和偏置,同时继承自Module

def forward(self,x): #进行前馈时所要执行的计算
y_pred = self.linear(x) #实现一个可调用的对象,实现 w * x + b
return y_pred

model = LinearModel() #可以直接被调用
criterion = torch.nn.MSELoss(size_average = False) #构造损失函数,继承自Module
optimizer = torch.optim.SGD(model.parameters(),lr = 0.01) #优化器,来自优化模块的SGD类

#训练过程
for epoch in range(1000):
y_pred = model(x_data) #前馈计算
loss = criterion(y_pred,y_data) #计算损失
print(epoch,loss.item()) #loss在print时自动调用__str__(),不会产生计算图

optimizer.zero_grad() #梯度归零
loss.backward() #反向传播
optimizer.step() #更新

print('w=',model.linear.weight.item()) #权重
print('b=',model.linear.bias.item())

x_test = torch.Tensor([[4.0]])
y_test = model(x_test)
print('y_pred = ',y_test.data)

标签:__,pred,self,torch,第五,print,PyTorch,线性,model
From: https://blog.51cto.com/u_15698454/5960124

相关文章

  • PyTorch 深度学习实践第四讲(反向传播)
    简单回顾关于w的更新神经网络原理备注:最后加入惩罚项反向传播原理备注:后期对权重进行更新,先进行前馈过程,再反向相应代码importtorchx_data=[1.0,2.0,3.0]y_data=[2.0,4......
  • PyTorch 深度学习实践(梯度下降算法)
    梯度下降上课代码importnumpyasnpimportmatplotlib.pyplotaspltx_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]w=1.0defforward(x):returnx*wdefcost(xs,y......
  • R语言Gibbs抽样的贝叶斯简单线性回归仿真分析|附代码数据
    全文下载链接:http://tecdat.cn/?p=4612最近我们被客户要求撰写关于Gibbs抽样的研究报告,包括一些图形和统计输出。贝叶斯分析的许多介绍都使用了相对简单的教学实例(例如,根......
  • PyTorch 深度学习实践第二讲(线性模型)
    写在前面:B站刘二大人 ,传送门 ​​PyTorch深度学习实践——线性模型​​​​学习步骤准备数据集模型的选择和设计训练的过程(确定权重)推理和测试工作(infering) Traininglo......
  • 《程序员修炼之道 从小工到专家》第五章读后感
    第五章共有五节解耦与得墨忒耳法则、源程序设计、时间耦合、他只是视图、黑板。解耦与得墨忒耳法则中讲把你的代码组织成最小单位(模块),并限制他们之间的交互。如果随后必须......
  • linux回炉第五天
    grepgrep-ogrep-vgrep-qgrep-cgrep-igrep-Agrep-Bgrep-Cgrep-egrep-rgrep-Rgrep-frpm-irpm-ivhrpm-qrpm-qlrpm-qarpm-qcrpm-qdrpm-qfrpm-evhdpkg-id......
  • 李群和李代数以及线性变换相关笔记
    参考链接:​​https://www.bilibili.com/video/BV1ys411472E?p=5​​Lie’sGroupisGroup,既是一个群,又是流形。群有两种运算群运算群乘......
  • 关于分类的线性模型的讨论
    关于分类的线性模型的讨论1.引言所谓分类模型,是指一类用于解决分类问题的数学模型。分类的目标是将输入变量x分到K个离散的类别Ck中的某一类。最常......
  • PriorityQueue 是线性结构吗?90%的人都搞错了!
    教你如何去判断一种数据结构的物理结构与逻辑结构​​​​其实这个问题的完整描述是:Java中的PriorityQueue实现,其数据的逻辑结构是线性结构吗?其......
  • PyTorch 深度学习实践第一讲
    写在前面:B站刘二大人 传送门​​Pytorch深度学习实践第一讲​​预备知识线性代数和概率论与数理统计(至少知道分布)Python(了解面向对象、类)引言:HumanIntelligence推理能力......