pytorch学习(一)线性模型

Pytorch实现线性回归模型 我们接下来使用Pytorch的API来手动构建一个线性回归的假设函数损失函数及优化方法,熟悉一下训练模型的流程。🧨我们将这批数据每次分成16份训练,并且这样重复训练epochs次,可以更深入地学习数据中的特征和模式,有助于防止模型快速陷入局部最优解,从而提高模型的泛化能力,而且。由于每个批次的数据都是随机抽取的。方法被调用时,PyTorch 会自动计算该张量相对于所有需要梯度的参数的梯度,并将这些梯度累加到对应参数的。是简单函数还是复杂的损失函数,都能利用相同的方法来进行梯度的反向传播。 阅读详情

pytorch是一个基础的python的科学计算库,它有以下特点:

  • 类似于numpy,但是它可以使用GPU
  • 可以用它来定义深度学习模型,可以灵活的进行深度学习模型的训练和使用

线性模型

线性模型的基本形式为: f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b,线性模型的参数是w和b,它的学习是通过不断减少损失实现的,其损失一般为均方损失

在这里插入图片描述
pytorch代码实现:

# from tkinter import W
import numpy as np
import matplotlib.pyplot as plt

x_data=[1.0,2.0,3.0]
y_data=[2.0,4.0,6.0]

def forward(x):
    return x*w

def loss(x,y):
    y_pred=forward(x)
    return (y_pred-y)*(y_pred-y)

w_list=[]
mse_list=[]

# 对于不同的w,手动模拟学习的过程
for w in np.arange(0.0,4.1,0.1):
    print("w=",w)
    l_sum=0# 损失值
    # 一次计算MSE的过程
    for x_val,y_val in zip(x_data,y_data):
        # 计算预测值
        y_pred_val=forward(x_val)
        # 计算损失函数
        loss_val=loss(x_val,y_val)
        l_sum+=loss_val
        print("\t",x_val,y_val,y_pred_val,loss_val)
    print("MSE=",l_sum/3)
    w_list.append(w)
    mse_list.append(l_sum/3)

# 画图
plt.plot(w_list,mse_list)
plt.ylabel("Loss")
plt.xlabel("w")
plt.show()

结果截图:
在这里插入图片描述

pytorch

# 使用pytorch      
import torch
import matplotlib.pyplot as plt
# 加载数据
x_data=torch.Tensor([[1.0],[2.0],[3.0]])
y_data=torch.Tensor([[2.0],[4.0],[6.0]])

# 构造线性模型
# tensor.nn.Linear(in_features, out_features, bias=True)其中in_features表示输入的样本,out_features表示输出的样本
class LinearModule(torch.nn.Module):
    def __init__(self):
        super(LinearModule,self).__init__()
        self.linear=torch.nn.Linear(1,1)
        
    # 定义前馈函数
    def forward(self,x):
        y_pred=self.linear(x)
        return y_pred
    
# 构造对象
model=LinearModule()
# 定义损失函数
# torch.nn.MSELoss(size_average=True, reduce=True)其中size_average是否求均值、reduce是否降维求和
criterion=torch.nn.MSELoss(size_average=False)

# 定义优化器
# SGD表示随机梯度下降
# torch.optim.SGD(params【权重参数】, lr=【学习率】, momentum=0【冲量】)
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)

epoches=[]
losses=[]

# 训练
for epoch in range(1000):
    # 前馈
    y_pred=model(x_data)
    # 计算损失函数
    loss=criterion(y_pred,y_data)
    print(epoch,loss.item())
    # 获取数据
    epoches.append(epoch)
    losses.append(loss.item())
    
    # 清零
    optimizer.zero_grad()
    # 反馈
    loss.backward()
    # 权重更新
    optimizer.step()
    

# 输出权重和偏移量
print('w=',model.linear.weight.item())
print('b=',model.linear.bias.item())

# 画图
plt.plot(epoches,losses)
plt.xlabel('epoch')
plt.ylabel('Loss')
plt.show()

# 预测值
x_test=torch.tensor([4.0])
y_test=model(x_test)
print('y_pred=',y_test.data)

部分结果截图
在这里插入图片描述

使用sklearn训练

# 使用sklearn训练
from sklearn.linear_model import LinearRegression
import numpy as np
import matplotlib.pyplot as plt

lr=LinearRegression()
x=np.array([1.0,2.0,3.0],dtype='float')
x=x.reshape(-1,1)
print(x.shape)
y=np.array([2.0,4.0,6.0],dtype='float')
y=y.reshape(-1,1)
print(y.shape)
lr.fit(x,y)
print('直线的斜率:',lr.coef_)
print('截距:',lr.intercept_)

# 画图
plt.plot(x,y,'b.')
plt.xlabel('X',fontsize=18)
plt.ylabel('Y',rotation=0,fontsize=18)

plt.plot(x,y,'r-',linewidth=2,label='predictions')
plt.legend(loc="upper left", fontsize=14)
plt.show()

训练结果截图
在这里插入图片描述

【深度学习】基于Pytorch的线性模型概念辨析和实现(一) 【深度学习】基于Pytorch的线性模型概念辨析和实现(一) 文章目录 1 为什么要谈线性回归? 2 建立模型基本形式 3 实现 3.1 损失函数 3.2 解析解 3.3 小批量随机梯度下降 3.4 矢量化加速 3.5 正态分布与平方损失 4 从线性回归到深度网络 5 最大似然估计 1 为什么要谈线性回归? 理论层面的重要性 Linear Regression:是回归问题的基础 Logistic Regression:是分类问题的基础 可扩展性:使用基函数来解决非线性问题 应用层面的重要性—— 阅读详情

相关推荐

Kylin V10 ARM64离线安装ffmpeg实战指南

在国产化替代浪潮下,基于银河麒麟V10和ARM架构(如飞腾、鲲鹏)的内网服务器部署音视频处理服务成为常态。由于系统默认软件源缺乏aarch64包且无法连接外网,常规yum安装方式难以奏效。本文从离线安装的通用概念出发,剖析了在Kylin V10上安装ffmpeg的三大路线及其原理,重点介绍了源码编译法,包括依赖梳理、工具链准备、编译参数配置、常见错误排查等关键环节。同时,将这套依赖管理与离线部署方法论延伸至nginx、node.js、Python库及docker等场景,帮助读者建立一套可复用的国产化系统离线

weixin_33417488的博客 148

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

41-dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

本文介绍基于 Text2SQL 的 Dify 工作流实现过程。先阐述 Text2SQL 概念、步骤及应用领域。接着说明工作流制作,包括用 chatflow 加开场白、获取系统时间,配置 LLM 生成 SQL,用 SQL Execute 工具查询,经 LLM 汇总结果,代码生成 ECharts 数据,条件分支判断图表类型输出。最后介绍验证测试、提供体验地址,还提及借助工具生成建表和初始化数据 SQL 语句。

个人技术 1万+

PyTorch学习-线性模型

将数据分为训练集、验证集(x,y)和测试集(x)。注意过拟合,提高模型的泛化能力。 线性模型(Linear Model):y′=x∗w+by'=x*w+by′=x∗w+b,x,w,bx,w,bx,w,b 往往是矩阵 目的就是求w,bw,bw,b的值 假设 loss=(y′−y)2=(x∗w−y)2loss = (y'-y)^{2}=(x*w-y)^2loss=(y′−y)2=(x∗w−y)2 要使 losslossloss的值最小 平均平方误差(Mean Square Error, MSE) : cost=

xiongyuqing的博客 634

为何LPDDR4支持on-die ECC,但是DDR4却不支持呢?

DRAM的ECC,目前的编码方式都是128bit data,产生8bit parity或者ECC code. 而且必须要128bit才行。这8bit的ECC code是要被写入到DRAM内存里面的,从而read的时候,可以读取这8bit ECC code来判定read data是否有错,如果是SBF,就可以纠错了,如果是double bit,大部分时候是可以detect到错误,即所谓的SEC(Single Error Correct) + DED(Double Error Detect).

一个DRAM从业者的告白 1556

UG/NX二次开发实例流程样例(nx1980+vs2019)

以上就是基本操作了,下面进入界面开发流程,nx1980的界面开发操作,也需要在块UI界面编辑器中操作,很多教程都没有讲解这一点,尤其是如何进入块UI界面编辑器,那么我在这里详细说明一下步骤。》,这一篇文章我们将详细讲述,如何开发一个具体的功能——根据用户输入的数据,在特定的点上创建一个指定大小的立方体。可以将文件保存当桌面,笔者保存在桌面的create_block目录中了,如下图所示,可以发现生成了三个文件。4.在新建模型完成后,我们准备创建交互UI,按照下图所示的顺序,找到块UI界面编辑器,。

秋月的私语 1万+

PyTorch深度学习实践 Lecture02 线性模型

《PyTorch深度学习实践》 Lecture 02 Linear_Model(线性模型) 文章目录 Linear Modle(线性模型) 利用 Y = W * X 建立一个简单的线性模型用来拟合给定的三组数据,并进行预测,在这过程种使用np.meshgrid()函数变化坐标矩阵后进行可视化展示,相关资料代码详见:

A_John 的博客 1417

告别臃肿!保姆级教程:用NTLite深度精简Win10,打造你的专属纯净系统(附完整组件移除清单)

本文提供了一份详细的NTLite教程,帮助用户深度精简Windows10系统,移除冗余组件并优化性能。从准备工作到组件移除清单,再到系统配置优化和无人值守安装,逐步指导用户打造专属纯净系统。附完整组件移除清单和实战经验,确保系统稳定高效运行。

weixin_30945039的博客 858

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

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

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

华为防火墙USG6000系列多ISP上网(通过WEB界面设置)

华为防火墙多ISP上网,内网分区上网。内网多网段不同上网方式。

daxihe880的博客 1万+

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4930

PyTorch学习(一)--线性模型

第二讲--线性模型(作业) 教程视频:https://www.bilibili.com/video/av92862340 作业题目:实现线性模型(y=wx+b)并输出loss的3D图像。 实现代码: import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D #这里设函数为y...

weixin_44841652的博客 3万+

Python爬虫实战:爬取国家企业信用信息公示系统(最新反反爬技术解析)

在当今大数据时代,企业信用数据对于市场分析、风险评估和商业决策具有重要价值。国家企业信用信息公示系统作为官方权威的企业信息平台,包含了全国各类企业的注册信息、行政处罚、经营异常等关键数据。复杂的反爬机制(动态Token、验证码、请求频率限制)数据渲染方式多样(部分内容由JavaScript动态加载)法律与合规风险(需遵守《网络安全法》和网站Robots协议)本文将详细介绍如何使用Python最新技术栈构建一个高效、稳定的企业信用信息爬虫,并重点解析应对各种反爬策略的解决方案。

2201_76125261的博客 2696

PyTorch学习记录(一)线性模型

第一次接触pytorch,本贴仅记录学习过程,侵删 在B站上找到了一个很不错的PyTorch学习视频 附上链接:https://www.bilibili.com/video/BV1Y7411d7Ys?p=2 学习完Lecture2.线性模型后有个课后作业 于是按自己的想法实现了一下,最后发现没有使用到Tips中的np.meshgrid() import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import

djy2069的博客 431

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

一、PyTorch 深度学习 线性模型

**第2讲 linear_model ** 来源:b站刘二大人的视频 源代码: import numpy as np import matplotlib.pyplot as plt x_data = [1.0, 2.0, 3.0] y_data = [2.0, 4.0, 6.0] def forward(x): return x * w def loss(x, y): y_pred = forward(x) return (y_pred - y) ** 2 # 穷举法

weixin_46087812的博客 210

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

PyTorch学习之旅(一)线性回归模型

使用PyTorch实现一个简单的线性回归深度学习模型

weixin_45651194的博客 602

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【Pytorch深度学习实践】笔记一 【线性模型】

刘二大人pytorch深度学习实践课后作业

chenwuder678的博客 133

pytorch学习(一):线性模型

Linear Model :y=x*ω 机器会随机生成一个a random guess,ω = random value 找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0 MSE(Mean Square Error)平均平方误差: import numpy as np import matplotlib.pyplot as plt x_data = [1.0,2.0,3.0] y_data = [2.0,3.0,4.0]...

weixin_44425647的博客 564

PyTorch深度学习实践(一)线性模型Linear Model作业

刘二大人的【PyTorch深度学习实践】

weixin_42233235的博客 536

机器学习及Pytorch(一.线性回归模型)

机器学习及Pytorch入门

weixin_67526755的博客 332

(一)PyTorch深度学习:线性模型训练

(一)PyTorch教程:线性模型训练

K_AAbb的博客 582

Pytorch深度学习(一):线性模型

线性模型一、线性模型概念二、实现代码如下:三、运行结果 一、线性模型概念 Linear Model : y=x*ω 机器会随机生成一个a random guess,ω = random value 找一个评估模型LOSS,用loss来评价预测模型与已知模型之间的差别。试图找mean loss(平均损失值)趋于0 MSE(Mean Square Error)平均平方误差: cost(代表所有样本的平均损失误差) 二、实现代码如下: import numpy as np import matplotl

qq_42585108的博客 515

PyTorch 深度学习之线性模型Linear model(一)

PyTorch深度学习系列-线性模型Linear model and zip()用法

HETUW的博客 1021

Pytorch深度学习实践(一)——线性模型

文章目录参考资料1. 线性回归1.1 准备数据1.2 构建计算图1.3 构造损失函数和优化器1.4 训练过程 本博客重点介绍深度学习代码框架,对于相关理论不进行更多的介绍。 参考资料 B站刘二老师Pytorch深度学习实践 1. 线性回归 采用深度学习Pytorch框架搭建线性回归模型通常需要四个步骤: 准备数据 构建计算图: ①__init__() ②forward() 构建损失函数和优化器 训练 ①向前传播–>损失计算–>向后传播–>更新。 1.1 准备数据 import tor

LongXinKou的博客 352

<Pytorch深度学习实践>(一):线性模型

线性模型 目的    通过已有的离散数据来学习到一个线性函数:y=f(x)=wx+by=f(x)=wx+by=f(x)=wx+b,用函数 f(x)f(x)f(x) 来预测新数据的类别。其中要学习的参数则是权重 www 和偏置 bbb   Training loss:loss=((y^−y)2=(x∗w−y)2(\hat{y}-y)^{2}=(x*w-y)^2(y^​−y)2=(x∗w−y)2)   Mean Square Error (MSE): cost=1/N∑n=1N(y^n−yn)2cost=1/N

qq_39443703的博客 934

pytorch学习篇(一):线性回归模型练习与解析

这边拿了两个大佬的课程作为学习 1. 莫烦老师课程线性回归 我对函数做了点修改生成了一个三次函数,代码如下: import torch import torch.nn from torch.autograd import Variable import matplotlib.pyplot as plt import torch.nn.functional as Fun def make_fake_data(): pass class Net(torch.nn.Module): def _

m0_37922496的博客 355
上一篇: python如何读取excel表格数据
下一篇: python绘制三维图
@@老胡
博客等级 码龄7年 291粉丝 184原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值