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

怎么搭建自己的网站卖货镇海建设交通局网站首页

怎么搭建自己的网站卖货,镇海建设交通局网站首页,dedecms漏洞,网站交互功能学习自https://pytorch.org/tutorials/beginner/pytorch_with_examples.html 概念 Pytorch Tensor在概念上和Numpy的array一样是一个nnn维向量的。不过Tensor可以在GPU中进行计算,且可以跟踪计算图(computational graph)和梯度(…

学习自https://pytorch.org/tutorials/beginner/pytorch_with_examples.html

概念

Pytorch Tensor在概念上和Numpy的array一样是一个nnn维向量的。不过Tensor可以在GPU中进行计算,且可以跟踪计算图(computational graph)和梯度(gradients)。

手动梯度下降拟合函数

我们用三次函数去拟合任意函数。
y^=a+bx+cx2+dx3\hat{y}=a+bx+cx^2+dx^3y^=a+bx+cx2+dx3
定义损失函数L=∑(y−y^)2L=\sum(y-\hat{y})^2L=(yy^)2
那么梯度为:
L:2∗∑(y−y^)L:2*\sum(y-\hat{y})L:2(yy^)
a:2∗∑(y−y^)a:2*\sum(y-\hat{y})a:2(yy^)
b:2∗x∗∑(y−y^)b:2*x*\sum(y-\hat{y})b:2x(yy^)
c:2∗x2∗∑(y−y^)c:2*x^2*\sum(y-\hat{y})c:2x2(yy^)
d:2∗x3∗∑(y−y^)d:2*x^3*\sum(y-\hat{y})d:2x3(yy^)

代码

import torch
import mathdtype = torch.float
device = torch.device("cuda:0") # Run on GPU# Create random input and output data
x = torch.linspace(-math.pi, math.pi, 2000, device=device,dtype=dtype)
y = torch.sin(x)# Randomly initialize weights
a = torch.randn((), device=device, dtype=dtype)
b = torch.randn((), device=device, dtype=dtype)
c = torch.randn((), device=device, dtype=dtype)
d = torch.randn((), device=device, dtype=dtype)learning_rate = 1e-6
for t in range(2000):# Forward pass: compute predicted yy_pred = a + b * x + c * x **2 + d *x ** 3# Compute and print lossloss = (y_pred - y).pow(2).sum().item()if t % 100 == 99:print(t, loss)# Backprop to compute gradients of a, b, c, d with respect to lossgrad_y_pred = 2.0 * (y_pred - y)grad_a = grad_y_pred.sum()grad_b = (grad_y_pred * x).sum()grad_c = (grad_y_pred * x ** 2).sum()grad_d = (grad_y_pred * x ** 3).sum()# Update weights using gradient descenta -= learning_rate * grad_ab -= learning_rate * grad_bc -= learning_rate * grad_cd -= learning_rate * grad_dprint(f'Result: y = {a.item()} + {b.item()} x + {c.item()} x^2 + {d.item()} x^3')

自动梯度下降拟合函数

通过PyTorch: nn构建神经网络,如果我们需要一个三次函数来拟合,那么我们就需要一个隐藏层为1层,节点为3个的神经网络。
y^=∑i=13(wixi+bi)\hat{y}=\sum_{i=1}^3(w_ix^i+b_i)y^=i=13(wixi+bi)

model = torch.nn.Sequential(torch.nn.Linear(3, 1), #三个节点torch.nn.Flatten(0, 1) # 把三个节点的结果加起来
)

由于我们的神经网络第一层有三个输入(x,x2,x3x,x^2,x^3x,x2,x3),所以我们需要把数据预处理一下

x = torch.linspace(-math.pi, math.pi, 2000)
y = torch.sin(x)p = torch.tensor([1, 2, 3])
xx = x.unsqueeze(-1).pow(p)

然后我们预测输出就可以直接调用model了

y_pred = model(xx) # y_pred也是一个tensor

损失函数

loss_fn = torch.nn.MSELoss(reduction='sum') # 定义,使用均方误差
loss = loss_fn(y_pred, y) # 计算均方误差
model.zero_grad() # 先把原先模型的梯度信息清零
loss.backward() # 计算反向传播的梯度

完整代码

import torch
import mathx = torch.linspace(-math.pi, math.pi, 2000)
y = torch.sin(x)p = torch.tensor([1, 2, 3])
xx = x.unsqueeze(-1).pow(p)model = torch.nn.Sequential(torch.nn.Linear(3, 1),torch.nn.Flatten(0, 1)
)loss_fn = torch.nn.MSELoss(reduction='sum')learning_rate = 1e-6
for t in range(2000):y_pred = model(xx)loss = loss_fn(y_pred, y)if t % 100 == 99:print(t, loss.item())model.zero_grad()loss.backward()with torch.no_grad(): # 进行梯度下降for param in model.parameters():param -= learning_rate * param.gradlinear_layer = model[0]
print(f'Result: y = {linear_layer.bias.item()} + {linear_layer.weight[:, 0].item()} x + {linear_layer.weight[:, 1].item()} x^2 + {linear_layer.weight[:, 2].item()} x^3')
http://www.yayakq.cn/news/113938/

相关文章:

  • 做网站被骗去哪投诉h5模板网站有哪些
  • 网站建设用户调查报告怎么注册商标品牌
  • 北京高端品牌网站定制学校如何建设网站首页
  • 百度站长工具对seo的帮助深圳4a广告公司有哪些
  • 在哪些网站做外贸好免费图片素材网站推荐
  • 网站首页的图片怎样做缓存行业资讯网站源码
  • 青岛网站建设兼职前端跟后端哪个就业难
  • 宁波建站平台扬州学做网站培训多少钱
  • html公司网站模板源码wordpress php 链接
  • 绞铜机 东莞网站建设免费包装设计在线生成
  • 公司网站建设申请报告企业网络优化
  • 教育培训网站深圳造价信息网官网
  • 莒县做网站的公司企业信用信息公示系统 上海
  • 国内建站平台有哪些一个备案可以做几个网站
  • intitlt:山西大同网站建设c 做网站看什么书
  • 科技公司网站开发成都房地产政策
  • 手机网站建设公司电话咨询asp网站开发教程百度云
  • 如何给网站做十大招聘网站排行榜
  • 无锡锡牛网站建设电商网站前端制作分工
  • 网站选项卡如何做自适应房产交易网站建设策划案
  • 云南建站公司网站建设 seo模块
  • 网站一般的后台大连零基础网站建设教学服务
  • 农林牧渔行业网站建设小红书内容营销
  • 星月教你做网站回顾文档如何快速做网站排名
  • 做宝宝衣服的网站什么项目适合新手创业
  • wordpress模版推荐seo北京
  • 暗红色网站外贸出口流程
  • 青岛做网站建网站876游戏平台网页游戏大全
  • 怎么提高网站seo优化关键字排名标题翻译为英文wordpress
  • 手机 dns 国外网站学生个人网页