pytorch实现简单线性模型

pytorch实现简单线性回归模型 目录:完整注释在代码中思路生成原始数据生成小批量数据定义模型(网络)定义误差函数定义优化算法主函数传参训练完整代码 思路 生成原始数据 根据原始数据以及batch_size,生成小批量数据 定义模型(网络) 定义误差函数 定义优化算法 主函数传参训练 生成原始数据 def synthetic_data(w, b, num_examples): """ 生成 y = Xw + b + 噪声。""" # torch.normal(mean, std, (x, y)):返回一个shape为(x 阅读详情

一、数据集的预处理

x_data = torch.tensor([[1.0], [2.0], [3.0]])
y_data = torch.tensor([[2.0], [4.0], [6.0]])

使用 torch.tensor 函数对数据进行预处理。

二、线性模型的构建

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
  1. 用类的形式定义线性模型,继承自 torch.nn.Module。
  2. 构建函数使用 super 表示调用父类的构建函数。
  3. 线性模型使用 torch.nn.Linear,参数(1,1)表示输入维数为1, 输出维数为1。
  4. forword 函数为前向传播函数,命名一定为 forward, 是对父类同名函数的覆盖。

三、参数设定

  1. 实例化线性模型。
model = LinearModel()
  1. 构建损失函数。MSE为平均平方误差。size_average=False 表示最后的损失不用处以平均数M。
criterion = torch.nn.MSELoss(size_average=False)
  1. 优化器的设置。使用SGD的方式来求最小值,model.parameters() 表示将线性模型所需要优化参数传入,lr为学习率。
optimizer = torch.optim.SGD(model.parameters(), lr=0.01)

四、迭代求最优参数

for epoch in range(1000):
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    print(epoch, loss.item())

    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

print('w =', model.linear.weight.item())
print('b =', model.linear.bias.item())
  • 设置迭代的次数为1000
  • 用线性model求预测值
  • 求损失的值
  • 每次迭代将参数的梯度值归零
  • 求反向传播
  • 更新参数

五、打印结果

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

在这里插入图片描述

VS Code配合Prettier自动格式化代码 每次修改 .prettierrc.cjs 配置文件后,如果发现保存代码时格式化没有生效,可能是 VS Code 插件缓存未及时刷新。建议此时重启 VS Code,确保新的配置被正确加载并生效。 阅读详情

相关推荐

(8)机器人动力学

机器人是一个具有多输入多输出的复杂动力学系统,存在严重的非线性,需要非常系统的方法对机器人进行动力学研究。常用的机器人动力学建模方法有:Lagrange(拉格朗日)动力学方法、Newton-Euler(牛顿-欧拉)动力学方法、Gauss(高斯)动力学方法、Kane(凯恩)动力学方法等。机器人动力学研究的是机器人的运动和作用力之间的关系。机器人的动力学问题包括动力学正问题和动力学逆问题。动力学正问题是对于给定的关节驱动力......

rouyu308的博客 9498

Pytorch如何自定义参数初始化方法

转载自:https://blog.youkuaiyun.com/dss_dssssd/article/details/83990511,本文只做个人记录学习使用,版权归原作者所有。 1.单层网络 在创建model后直接调用torch.nn.innit里的初始化函数 layer1=torch.nn.Linear(10,20) torch.nn.init.xavier_uniform_(layer.wei...

开飞机的小毛驴儿 3141

深入解析STM32H743双精度FPU:从配置误区到三角函数加速技巧

本文深入解析STM32H743双精度FPU的配置与优化技巧,涵盖常见误区、三角函数加速及飞控系统应用。通过实测数据展示如何利用FPU提升数学运算效率,特别适合工业控制、无人机飞控等高精度实时应用场景。

weixin_29190651的博客 641

Pytorch—线性模型实现

Pytorch—线性模型实现 本文将通过设置变量的自动求导方式来手动编写一个线性模型和利用Pytorch自定义的线性层来实现一个线性模型。 1. 手动编写 #encoding=utf-8 import torch from IPython import display from matplotlib import pyplot as plt import numpy as np import random # 生成数据集 input_dim = 2 exmples_num = 1000 true_w =

hei653779919的博客 1271

Synology File Station 官方 API 指南总结(中文版)

本文总结了Synology File Station官方API指南的核心内容,详细介绍了如何通过HTTP/HTTPS请求与DSM系统交互实现文件管理功能。主要内容包括: 基础API操作流程:从获取API信息、登录认证到执行请求和登出的完整工作流 请求构造与响应解析:JSON格式的请求参数处理和响应结果分析 关键API功能分类: 文件信息获取(List/Info) 文件搜索(Search) 收藏夹管理(Favorite) 缩略图生成(Thumb) 目录大小计算(DirSize) 文件上传(Upload)等 错

weixin_46001686的博客 2460

VC Spyglass CDC验证避坑指南:如何正确配置同步复位信号(实验二重点解析)

本文深入解析VC Spyglass CDC验证中同步复位信号的正确配置方法,通过实验二案例详细展示错误配置的典型表现及修正过程。文章提供同步复位的最佳实践方案,包括约束文件修改指南、验证流程优化建议和高级调试技巧,帮助工程师有效避免CDC验证中的常见陷阱。

rock5的博客 678

【Pytorch】使用Pytorch简单实现一个线性模型

Hello!ଘ(੭ˊᵕˋ)੭昵称:海轰标签:程序猿|C++选手|学生简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!唯有努力💪本文仅记录自己感兴趣的内容通过一下小例子,梳理一下Pytorch中模型的搭建、训练、测试等…加深理解文章仅作为个人学习笔记记录,记录从0到1的一个过程希望对您有一点点帮助,如有错误欢迎小伙伴指正。

海到无边天作岸 山登绝顶我为峰 2193

【TELEMAC V8P4】TELEMAC-2D 用户手册核心概念与应用场景速览

本文深入解析了TELEMAC-2D水动力模型的核心概念与应用。作为基于二维浅水方程的开源数值模拟工具,TELEMAC-2D广泛应用于河流动力学、洪水演进、污染物输运及泥沙运动模拟。文章结合用户手册与实战经验,详细拆解了其理论框架、关键物理过程(如湍流模型、干湿网格处理),并提供了从模型搭建、文件配置到典型场景(如工程评估、污染应急、洪水模拟)的实用指南,帮助用户快速掌握这一强大工具。

weixin_29200741的博客 163

Pytorch实现线性模型

1、模型训练步骤 (1)准备数据集 (2)设计模型,计算y_pred (3)计算loss (4)训练周期 ​ ①前馈②反馈(梯度)③更新权重 2、知识点 (1)线性单元(Linear Unit) ①线性单元就是计算一次y_pred,也就是一个感知机。 ②在实际的计算中,y_pred与X都是向量,而在pytorch里面使用Tensor进行向量的存储,因此在进行数据准备时需要将训练数据存储为Tensor。 注:例如:w矩阵在扩充之前是1*1,那么在实际的计算中,需要将w扩充为31矩阵 ③w需要根据z与x来

weixin_45982484的博客 930

《HiVT: Hierarchical Vector Transformer for Multi-Agent Motion Prediction》论文阅读之HiVT

目录摘要1.介绍2.相关工作3.方法3.1. 总体框架3.2 场景表示 3.3 分层向量Transformer3.3.1 局部编码器3.3.2 全局交互模块3.3.3 多模态未来解码器3.4 训练4.实验4.1 实验设置4.2 消融研究 4.3. 结果5.结论 准确预测周围交通参与者的未来运动对于自动驾驶车辆的安全至关重要。最近,矢量化方法由于能够捕捉交通场景中的复杂交互而在运动预测领域占据主导地位。然而,现有的方法忽略了问题的对称性并且受到昂贵的计算成本的影响,面临着在不牺牲预测性能的情况

Gavinmiaoc的博客 3340

ABAP 平台 SOAUTH2_CLIENT 全面实战:用一套配置,打通 OAuth 2.0 客户端的创建、联调与运维

本文是一份ABAP平台上配置OAuth 2.0客户端的全流程指南,重点介绍新界面SOAUTH2_CLIENT的使用方法。内容涵盖从概念解析到实操步骤,包括四种常见授权方式的选择、证书信任管理、Scope配置以及联调技巧。指南通过两个企业级案例(对接SAP BTP Cloud Integration和SAML 2.0身份联合)展示实际应用场景,并提供了配置清单和伪代码示例。特别强调新界面将客户端配置、令牌测试和校验功能整合的工程化优势,以及与旧事务码OA2C_CONFIG的主要差异。文中多处引用SAP官方文档

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 319

实现线性回归——【torch学习笔记】

实现线性回归 引用翻译:《动手学深度学习》 深度学习的热潮激发了各种成熟的软件框架的发展,这些框架将实现深度学习模型的大部分重复性工作自动化。 可以仅依靠NDarray进行数据存储和线性代数,以及autograd软件包中的自动分化功能。 在实践中,由于许多更抽象的操作,如数据迭代器、损失函数、模型架构和优化器,都非常普遍,深度学习库也会给我们提供这些库函数。 在本节中,我们将学习如何用DataLoader更简洁地实现的线性回归模型。 一、生成数据集 首先,我们将生成与上一节中使用的相同的数据集。 impor

诗酒趁年华。 2607

【第13话:感知算法】库位与可行驶区域检测:自主泊车场景中的检测及语义分割方法

本文提出了一种自动泊车系统中的泊车库位线检测方法,通过逆透视映射(IPM)将车辆摄像头图像转换为鸟瞰视图,消除透视变形。该方法结合目标检测和语义分割模型,先定位库位线候选区域,再生成像素级精确掩码。后处理步骤将掩码转换为结构化输出,包括停车位边界多边形和可行驶区域掩码。整个流程采用深度学习模型和计算机视觉技术,可实现高精度的泊车环境感知,为自动泊车系统提供可靠支持。

一碗白开水一 1160

用pytorch实现一个简单的线性回归模型

我们使用pytorch实现一个简单的线性回归模型。(我是在jupyter notebook下做的,建议在这个环境下写代码) 首先我们先定义数据集: #数据集中的样本值 x = [35.7, 55.9, 58.2, 81.9, 56.3, 48.9, 33.9, 21.8, 48.4, 60.4, 68.4] #数据集中的标签 y = [0.5, 14.0, 15.0, 28.0, 11.0, 8.0, 3.0, -4.0, 6.0, 13.0, 21.0] x = torch.tens

风中尘埃的博客 779

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习之使用pytorch框架实现简单的线性模型

本文使用PyTorch框架实现线性回归模型。主要步骤包括:1)准备数据集,将x和y数据转换为tensor;2)设计LinearModel类作为学习模型;3)构建MSE损失函数和SGD优化器;4)进行1000轮训练,每轮计算预测值、损失函数,并更新参数。最后测试了一个新样本x=4.0的预测结果,并绘制了权重w与损失值的变化关系图。该实现展示了PyTorch进行线性回归的标准流程,包括前向传播、反向传播和参数更新等关键步骤。

stillaway的博客 241

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

PyTorch|简单实现线性回归模型

线性回归是分析一个变量与另外一个(或多个)变量之间关系的一种方法,该方法需要从实际数据中抽象出因变量Y、自变量X,且假定Y相对于X按照近似线性的方式变化,即函数图像上近似呈现一条直线。通常可以用下述公式表示,而模型求解目标为确定其中的斜率W与偏置b。

木千之 1919

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用pytorch实现一个简单的线性模型demo

使用pytorch实现一个简单的线性模型deomo。

estxiyang的博客 809

pytorch实现简单的线性回归模型

import numpy as np import random import matplotlib.pyplot as plt x = np.arange(20) y = np.array([5*x[i]+random.randint(1,20) for i in range(len(x))]) print("产生的X:",x) print("产生的y:",y) plt.plot(x,y,"r.") 产生的X: [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1.

Marlene_Jiang的博客 1104

简单线性回归模型的pytorch实现

线性回归模型可能对于大家来说非常的简单,但是对于像我一样的pytorch新手来说,还是花了些时间去思考和了解的,下面直接上代码,新入pytorch坑的同学可以一边看我的注释一边想想代码还可以怎么写。 对了,大概说一下这里的线性回归模型的形式 y=w1∗x+w2∗x+b y=w_1*x+w_2*x+by=w1​∗x+w2​∗x+b import torch import time import nu...

tyro_blog的博客 435

初学者指南:使用 Numpy、Keras 和 PyTorch 实现最简单的机器学习模型线性回归

机器学习是人工智能的一门子科学,其中计算机和机器通常学会在没有人工干预或显式编程的情况下自行执行特定任务(当然,首先要对他们进行训练)。 不同类型的机器学习技术可以划分到不同类别,如图 1 所示。方法的选择取决于问题的类型(分类、回归、聚类)、数据的类型(图像、图形、时间系列、音频等等)以及方法本身的配置(调优)。 在本文中,我们将使用 Python 中最著名的三个模块来实现一个简单的线性回归模型。 使用 Python 的原因是它易于学习和应用。 我们将使用的三个模块是: 1- Numpy:可以用于数组、

deephub 4785

Pytorch学习——pytorch典型的模型训练过程:实现一个简单的线性回归模型

一个典型的神经网络的训练过程如下: 定义具有学习参数(或权重)的神经网络 迭代输入数据集 根据神经网络对输入数据集进行运算 计算损失(输出与真实结果的距离,损失越小说明模型越准确) 将梯度反向传播给神经网络的参数 更新网络的权重(或参数)。通常使用一种简单的更新规则:权重 = 权重 - 学习率 * 梯度 线性回归模型目标: 构造一组输入数据 x 和其对应的标签 y ,让模型学习拟合出 w 和 b。 我们这里要模拟出的线性回归函数:y = 2x + 1 x 给的是从 0 - 10 一共11个数(11行1列

weixin_43201090的博客 809

pytorch 实现简单的线性回归模型

import torch # 流程:1.设计模型 # 2.算y_hat # 3.算loss # 4.梯度清零 # 5.反向传播求梯度(变量对loss的导数) # 6.优化器(更新参数) # 7.返回第二步 class LinearModel(torch.nn.Module): def __init__(self): # 调用父类的方法 super().__init__() # 两个参数分

VanChouL的博客 762

学习pytorch(二)pytorch自带的工具实现简单的线性模型

在上一篇博客中,我是用手动的方式管理和更新权重的。在pytorch中,这些其实可以自动完成。下面分享下用pytorch构建简单模型并训练的学习收获。 有4个步骤。 1.获得数据集 2.构建模型(这里用pytorch自带的单元链接拼凑成一个模型。 3.构建损失计算器和权值优化器。损失计算器用来计算模型得到的预测值相对于真实值的损失。优化器用来调整权值,通过权值调整,使得模型能够逐渐实现我们的目的。损失计算器和权值优化器都是pytorch自带的。 4.开始训练。 import torch x_data=torc

ld_long的博客 336

[深度学习][pytorch]pytorch实现一个简单得线性回归模型并训练

optimizer = torch.optim.SGD(model.parameters(),lr=learning_rate) #优化器 模型的参数 学习率。self.linear = nn.Linear(input_dim, output_dim) #全连接层 给定输入/出数据的维度。x 给的是从 0 - 10 一共11个数(11行1列的矩阵) 对应的y就是 1 - 21 也是11个数(11行1列的矩阵)out = self.linear(x)#走全连接层 输入x,得到输出out。

FL1623863129的博客 791

使用PyTorch库实现的简单的线性回归模型。

w_0 = torch.normal(0, 0.01, true_w.shape, requires_grad=True) # 初始化权重,并要求梯度。它遍历所有训练轮数,每一轮都会遍历所有数据批次,执行前向传播、计算损失、反向传播和参数更新,并打印每轮的损失。b_0 = torch.tensor(0.01, requires_grad=True) # 初始化偏置,并要求梯度。pred_y = fun(batch_x, w_0, b_0) # 前向传播。函数定义了损失函数,即平均绝对误差。

weixin_58304469的博客 270

pytorch 和 scikit learn 实现一个简单的线性回归模型——金鱼年龄预测问题

从一道题中学会线性回归算法。

yangzuhao2020的博客 1088
上一篇: 吴恩达机器学习作业8 :Anomaly Detection and Recommender Systems python 实现
下一篇: 快速幂:迭代法和递归法 python实现
zsiming
博客等级 码龄7年 43粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值