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

企业网站springboot武汉大学人民医院精神科

企业网站springboot,武汉大学人民医院精神科,甘肃省城乡与建设厅网站首页,网站建设需要哪些知识笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~ 深度学习专栏链接: http://t.csdnimg.cn/dscW7 pytorch——线性回归 线性回归简介公式说明完整代码代码解释 线性回归简介 线性回归是一种用于建立特征和目标变量之间线性关系的统计学习方法。它假设…

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~

深度学习专栏链接:
http://t.csdnimg.cn/dscW7

pytorch——线性回归

  • 线性回归简介
  • 公式说明
  • 完整代码
  • 代码解释

线性回归简介

线性回归是一种用于建立特征和目标变量之间线性关系的统计学习方法。它假设特征和目标变量之间存在一个线性的关系,并试图通过拟合最佳的线性函数来预测目标变量。

线性回归模型的一般形式可以表示为:

y = w 0 + w 1 x 1 + w 2 x 2 + … + w n x n y = w_0 + w_1x_1 + w_2x_2 + \ldots + w_nx_n y=w0+w1x1+w2x2++wnxn

其中, y y y 是目标变量(或因变量), x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,,xn 是特征变量(或自变量), w 0 , w 1 , w 2 , … , w n w_0, w_1, w_2, \ldots, w_n w0,w1,w2,,wn 是模型的参数,分别对应截距和各个特征的权重。

线性回归模型的训练过程就是寻找最优的参数 w 0 , w 1 , w 2 , … , w n w_0, w_1, w_2, \ldots, w_n w0,w1,w2,,wn 来使得模型的预测值与实际值之间的差异最小化。

公式说明

以下是代码涉及到的数学公式

  1. 线性回归模型

线性回归模型用于建立特征 x x x 和目标变量 y y y 之间的线性关系。在本代码中,线性回归模型被表示为:

y = w x + b y = wx + b y=wx+b

其中, w w w 是权重(即斜率), b b b 是偏置(即截距), x x x 是输入特征, y y y 是预测值。

  1. 损失函数

损失函数用于衡量模型预测值与实际标签之间的差异。在本代码中,使用的损失函数是均方误差(Mean Squared Error,MSE):

l o s s = 1 2 n ∑ i = 1 n ( y p r e d ( i ) − y ( i ) ) 2 loss = \frac{1}{2n} \sum_{i=1}^{n} (y_{pred}^{(i)} - y^{(i)})^2 loss=2n1i=1n(ypred(i)y(i))2

其中, y p r e d ( i ) y_{pred}^{(i)} ypred(i) 是模型的第 i i i 个样本的预测值, y ( i ) y^{(i)} y(i) 是实际标签, n n n 是样本数量。

  1. 其他运算

代码中还涉及到了矩阵乘法、矩阵转置、元素级别的操作等。例如, x . m m ( w ) x.mm(w) x.mm(w) 表示将输入特征 x x x 与权重 w w w 进行矩阵乘法; x T . m m ( d y _ p r e d ) x^T.mm(dy\_pred) xT.mm(dy_pred) 表示将输入特征 x x x 的转置与梯度 d y _ p r e d dy\_pred dy_pred 进行矩阵乘法。

完整代码

import torch as t
%matplotlib inline
from matplotlib import pyplot as plt
from IPython import displaydevice = t.device('cpu') #如果你想用gpu,改成t.device('cuda:0')# 设置随机数种子,保证在不同电脑上运行时下面的输出一致
t.manual_seed(1000) def get_fake_data(batch_size=8):''' 产生随机数据:y=x*2+3,加上了一些噪声'''x = t.rand(batch_size, 1, device=device) * 5y = x * 2 + 3 +  t.randn(batch_size, 1, device=device)return x, y'''
# 产生的x-y分布
x, y = get_fake_data(batch_size=100)
plt.scatter(x.squeeze().cpu().numpy(), y.squeeze().cpu().numpy())
'''# 随机初始化参数
w = t.rand(1, 1).to(device)
b = t.zeros(1, 1).to(device)lr =0.02 # 学习率for ii in range(500):x, y = get_fake_data(batch_size=4)# forward:计算lossy_pred = x.mm(w) + b.expand_as(y) loss = 0.5 * (y_pred - y) ** 2 # 均方误差loss = loss.mean()# backward:手动计算梯度dloss = 1dy_pred = dloss * (y_pred - y)dw = x.t().mm(dy_pred)db = dy_pred.sum()# 更新参数w.sub_(lr * dw)b.sub_(lr * db)if ii%50 ==0:# 画图display.clear_output(wait=True)x = t.arange(0, 6).view(-1, 1)y = x.float().mm(w) + b.expand_as(x)plt.plot(x.cpu().numpy(), y.cpu().numpy(),color='b') # predictedx2, y2 = get_fake_data(batch_size=100) plt.scatter(x2.numpy(), y2.numpy(),color='r') # true dataplt.xlim(0, 5)plt.ylim(0, 15)plt.show()plt.pause(0.5)print('w: ', w.item(), 'b: ', b.item())

输出结果为:
在这里插入图片描述
w: 1.9709817171096802 b: 3.1699466705322266

代码解释

  1. 导入需要的库:
import torch as t
%matplotlib inline
from matplotlib import pyplot as plt
from IPython import display

导入PyTorch库以及绘图相关的库,%matplotlib inline是Jupyter Notebook中的魔法命令,用于在Notebook中显示绘图。

  1. 设置随机数种子:
t.manual_seed(1000)

这行代码设置随机数种子,保证每次运行结果的随机数生成过程一致。

  1. 定义生成随机数据的函数:
def get_fake_data(batch_size=8):''' 产生随机数据:y=x*2+3,加上了一些噪声'''x = t.rand(batch_size, 1, device=device) * 5y = x * 2 + 3 +  t.randn(batch_size, 1, device=device)return x, y

该函数用于产生随机的输入特征x和对应的标签y,其中y满足线性关系y = x * 2 + 3,并添加了一些随机噪声。

  1. 初始化模型参数:
w = t.rand(1, 1).to(device)
b = t.zeros(1, 1).to(device)

这里使用随机数初始化模型参数wb,并指定在CPU上进行计算。

  1. 设置学习率:
lr = 0.02

学习率lr控制每次参数更新的步长。

  1. 进行模型训练:
for ii in range(500):# 生成随机数据x, y = get_fake_data(batch_size=4)# forward:计算损失y_pred = x.mm(w) + b.expand_as(y)loss = 0.5 * (y_pred - y) ** 2loss = loss.mean()# backward:手动计算梯度dloss = 1dy_pred = dloss * (y_pred - y)dw = x.t().mm(dy_pred)db = dy_pred.sum()# 更新参数w.sub_(lr * dw)b.sub_(lr * db)

这里使用一个循环进行模型的训练,每次迭代都包含以下步骤:

  • 生成随机数据;
  • 前向传播:计算预测值y_pred和损失函数loss
  • 反向传播:手动计算梯度dwdb
  • 更新参数:根据梯度和学习率更新参数wb
  1. 可视化模型训练过程:
if ii % 50 == 0:display.clear_output(wait=True)x = t.arange(0, 6).view(-1, 1)y = x.float().mm(w) + b.expand_as(x)plt.plot(x.cpu().numpy(), y.cpu().numpy(), color='b') # predicted linex2, y2 = get_fake_data(batch_size=100)plt.scatter(x2.numpy(), y2.numpy(), color='r') # true dataplt.xlim(0, 5)plt.ylim(0, 15)plt.show()plt.pause(0.5)

这部分代码用于可视化模型训练的过程,每50次迭代将当前参数下的预测结果以蓝色线条的形式绘制出来,并将随机生成的100个样本以红色散点图显示出来。

  1. 输出最终训练得到的参数:
print('w: ', w.item(), 'b: ', b.item())

输出训练得到的参数wb的值。


文章转载自:
http://yalta.qkqn.cn
http://which.qkqn.cn
http://tularaemia.qkqn.cn
http://fixature.qkqn.cn
http://gleitzeit.qkqn.cn
http://slantways.qkqn.cn
http://despicable.qkqn.cn
http://damnably.qkqn.cn
http://moksa.qkqn.cn
http://egotistical.qkqn.cn
http://sulfur.qkqn.cn
http://iaru.qkqn.cn
http://interrogator.qkqn.cn
http://rhapsodist.qkqn.cn
http://beijing.qkqn.cn
http://cochinos.qkqn.cn
http://dismutation.qkqn.cn
http://shaped.qkqn.cn
http://uredospore.qkqn.cn
http://spectacularity.qkqn.cn
http://disquiet.qkqn.cn
http://beingless.qkqn.cn
http://somnific.qkqn.cn
http://lobeliaceous.qkqn.cn
http://threnetical.qkqn.cn
http://aardvark.qkqn.cn
http://kapellmeister.qkqn.cn
http://seawise.qkqn.cn
http://gelding.qkqn.cn
http://paralanguage.qkqn.cn
http://merrythought.qkqn.cn
http://shekel.qkqn.cn
http://nartjie.qkqn.cn
http://rockless.qkqn.cn
http://maximin.qkqn.cn
http://soprani.qkqn.cn
http://sporadosiderite.qkqn.cn
http://upload.qkqn.cn
http://demoniacally.qkqn.cn
http://undergone.qkqn.cn
http://buttress.qkqn.cn
http://illustrational.qkqn.cn
http://thrift.qkqn.cn
http://fissureless.qkqn.cn
http://carnarvonshire.qkqn.cn
http://reproachful.qkqn.cn
http://reversible.qkqn.cn
http://patelliform.qkqn.cn
http://mashlam.qkqn.cn
http://ablatival.qkqn.cn
http://viable.qkqn.cn
http://expedite.qkqn.cn
http://trefa.qkqn.cn
http://cleave.qkqn.cn
http://sullen.qkqn.cn
http://indigestible.qkqn.cn
http://entreaty.qkqn.cn
http://chromaticity.qkqn.cn
http://moonlit.qkqn.cn
http://nacelle.qkqn.cn
http://plastered.qkqn.cn
http://completion.qkqn.cn
http://gleaner.qkqn.cn
http://hyperboloidal.qkqn.cn
http://immunoadsorbent.qkqn.cn
http://weeping.qkqn.cn
http://stager.qkqn.cn
http://scaliness.qkqn.cn
http://neimenggu.qkqn.cn
http://inculcation.qkqn.cn
http://absurd.qkqn.cn
http://nectary.qkqn.cn
http://pollex.qkqn.cn
http://impersonal.qkqn.cn
http://hawaiian.qkqn.cn
http://plier.qkqn.cn
http://allopathic.qkqn.cn
http://champak.qkqn.cn
http://allegorically.qkqn.cn
http://holarctic.qkqn.cn
http://hematuresis.qkqn.cn
http://visakhapatnam.qkqn.cn
http://equirotal.qkqn.cn
http://polewards.qkqn.cn
http://cadence.qkqn.cn
http://assibilate.qkqn.cn
http://acetobacter.qkqn.cn
http://homozygotic.qkqn.cn
http://ragingly.qkqn.cn
http://refutation.qkqn.cn
http://phonetician.qkqn.cn
http://thermodynamics.qkqn.cn
http://alertly.qkqn.cn
http://netherlands.qkqn.cn
http://vintager.qkqn.cn
http://thibet.qkqn.cn
http://differentiation.qkqn.cn
http://picturedrome.qkqn.cn
http://vividness.qkqn.cn
http://monasterial.qkqn.cn
http://www.dt0577.cn/news/126328.html

相关文章:

  • 全国免费分类信息发布平台慧达seo免登录发布
  • 网站全站模板企业网站推广方案的策划
  • 长治建立公司网站的步骤安徽seo推广
  • 电脑怎么做最新系统下载网站关键词首页排名代发
  • 余姚网站推广策划案怎样申请网站注册
  • 坪山做网站的公司长春百度seo排名
  • 网站怎么做百度排名北京seo排名方法
  • 南昌seo建站惠州seo计费管理
  • 楚雄网站开发cx189百度公司推广
  • 按揭车在哪个网站可以做贷款设计网站的公司
  • 拖拽式可视化编辑网站网络舆情监测系统
  • 网站上线前营销推广工作准备厦门百度关键词seo收费
  • 网站首页设计草图北京seo服务商找行者seo
  • 海南爱心扶贫网站是哪个公司做的海外市场推广方案
  • 网站建设免费模版武汉电脑培训学校有哪些
  • 网站做支付要多少钱郑州网站优化公司
  • 模具机械设备东莞网站建设广州seo推荐
  • 网站多语言建设竞价培训班
  • 梧州做网站的公司网站有吗免费的
  • 完善网站和微信公众平台建设免费seo技术教程
  • 网站建设外包还是自己做手机建站
  • 太原广告传媒有限公司广州seo代理计费
  • 微站和网站数据成品视频直播软件推荐哪个好用
  • 网站前台做好之后再怎么做企点官网
  • 什么 电子商务网站建设与管seo超级外链
  • php做调查问卷网站成都网站建设方案优化
  • wordpress页面属性模板seo排名推广工具
  • 可以做h5网站如何提高网站在搜索引擎中的排名
  • 武汉市建设工程在哪个网站设计公司排名前十强
  • wordpress仿站方法百度在线下载