当前位置: 首页 > news >正文

深度学习-线性回归模型解析

import torch import matplotlib.pyplot as plt #画图的 import random #随机 def create_data(w,b,data_num) : #生成数据 x = torch.normal(0,1,(data_num,len(w))) y = torch.matmul(x,w) +b #matmul表示矩阵相乘 noise = torch.normal(0,0.01,y.shape) #噪声要加到y上 y+=noise return x,y num = 500 true_w = torch.tensor([8.1,2,2,4]) true_b = torch.tensor(1.1) X,Y = create_data(true_w,true_b,num)plt.scatter(X[:,2],Y,1) plt.show() def data_provider(data,label,batchsize): #每次访问这个函数,就能提供一批数据 length = len(label) indices = list(range(length)) #变为0-500的列表 #不按顺序取数,把数据打乱 random.shuffle(indices) for each in range(0,length,batchsize): get_indices = indices[each:each+batchsize] get_data = data[get_indices] get_label = label[get_indices] yield get_data,get_label #有存档点的returnbatchsize = 16 for batch_x,batch_y in data_provider(X,Y,batchsize): print(batch_x,batch_y) # break def fun(x,w,b): pred_y = torch.matmul(x,w) +b return pred_y def maeLoss(pre_y,y): return torch.sum(abs(pre_y-y))/len(y)def sgd(paras,lr): #随机梯度下降。更新参数 with torch.no_grad(): #属于这句代码的部分,不计算梯度 for para in paras: para -=para.grad * lr para.grad.zero_() #使用过的梯度,归0lr = 0.03 #学习率 w_0 = torch.normal(0,0.01,true_w.shape,requires_grad=True) #这个w需要计算梯度 b_0 = torch.tensor(0.01,requires_grad=True) print(w_0,b_0) epochs = 50 for epoch in range(epochs): data_loss = 0 for batch_x,batch_y in data_provider(X,Y,batchsize): pred_y = fun(batch_x,w_0,b_0) loss = maeLoss(pred_y,batch_y) loss.backward() sgd([w_0,b_0],lr) data_loss +=loss print("epoch %03d: loss: %.6f"%(epoch,data_loss)) print("真实的函数值是:",true_w,true_b) print("训练得到的参数值是:",w_0,b_0) idx = 2 plt.plot(X[:,idx].detach().numpy(),X[:,idx].detach().numpy()*w_0[idx].detach().numpy()+b_0.detach().numpy()) plt.scatter(X[:,idx],Y,1) plt.show()
http://www.jsqmd.com/news/483919/

相关文章:

  • lerobot中openpi0模型的processor示例
  • 基于SpringBoot的运动服装销售系统设计与实现
  • 大数据领域Spark的数据存储与读取方式
  • 忘记密码怎么办?教程来了!!!(包会)
  • 《Azul报告:62%的Java开发者已在写AI代码,这5个Java+AI实战场景你必须会》
  • PFM和FCCM的区别是什么?
  • 高效查重工具评测:9大方案助力论文质量提升
  • 3月16日直播丨面向新一代硬件,CANN技术架构的变与不变
  • 制造业信息化系统开发工程师 - 学习资料汇总
  • 智能化学术文献管理:六种AI驱动的论文自动引用生成策略
  • OpenClaw本地部署亲测分享
  • 【数据集】省级建成区绿化覆盖率数据(2006-2023年)
  • 2026年评价高的节能染色机厂家推荐:高温高压溢流染色机/低浴比高温喷射液流染色机精选厂家推荐 - 行业平台推荐
  • 微信小程序基础面试题(2)
  • 5-8能被3,5和7整除的数的个数(用集合实现)
  • 基于Python的旅游出行必备商城设计与实现毕业设计源码
  • 什么是Agent Skills,它和Tool以及MCP有什么区别?
  • 评判方法:你现在正使用的服装ERP软件该升级吗?
  • Web Services 简介
  • 海康NAS R1新版下载引擎
  • 深扒GEO优化行业潜规则:全网首次深度拆解底层逻辑
  • 雨云注册以及提现教程
  • 【LeetCode-03 判断根结点是否等于子结点之和 python解法】
  • 使用nvm管理node.js
  • 达索Abaqus求解效率提升50%
  • 一道一年级错题,测出5个大模型的“智商“:最老实的那个反而输了?
  • 神经类比推理在创新问题解决中的潜力分析
  • API与MCP请求服务详解
  • 第6章 线性相关性、秩与维度:系统的独立程度
  • 实测3款自动生成PPT工具|2026年AI博主私藏,助力程序员/职场人高效排版