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

网站建设就是学淘宝吗怎样登录韵网网站

网站建设就是学淘宝吗,怎样登录韵网网站,python做网站视频,wordpress调用幻灯片前言 pytorch中的动态图机制是pytorch这门框架的优势所在#xff0c;阅读本篇博客可以使我们对动态图机制以及静态图机制有更直观的理解#xff0c;同时在博客的后半部分有关于逻辑回归的知识点#xff0c;并且使用pytorch中张量以及张量的自动求导进行构建逻辑回归模型。 …前言 pytorch中的动态图机制是pytorch这门框架的优势所在阅读本篇博客可以使我们对动态图机制以及静态图机制有更直观的理解同时在博客的后半部分有关于逻辑回归的知识点并且使用pytorch中张量以及张量的自动求导进行构建逻辑回归模型。 计算图 计算图是用来描述运算的有向无环图 计算图有两个主要元素:节点Node和边Edge 节点表示数据如向量矩阵张量边表示运算如加减乘除卷积等。 用计算图表示y (xw)*(w1) a x wb w 1y a * b 采用计算图进行计算的好处 它不仅仅能够让我们的运算更加简洁更重要的作用是使得梯度求导更方便 我们可以用pytorch模拟这个过程 import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) b torch.add(w,1) y torch.mul(a,b)y.backward() # 调用反向传播 梯度求导 print(w.grad) # tensor([5.])叶子节点 用户创建的节点称为叶子节点 上述代码创建的w和x 就是叶子节点 is_leaf:知识张量是否为叶子结点 只有叶子节点能输出梯度 因为非叶子节点在计算之后的梯度会自动回收 import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) b torch.add(w,1) y torch.mul(a,b)# y.backward() # 调用反向传播 梯度求导 # print(w.grad) print(w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf)输出 True True False False False输出非叶子节点的梯度的方法 在非叶子节点创建之后执行.retain_grad()命令 import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) a.retain_grad() b torch.add(w,1) y torch.mul(a,b)y.backward() # 调用反向传播 梯度求导 # print(w.grad) # print(w.is_leaf,x.is_leaf,a.is_leaf,b.is_leaf,y.is_leaf) print(w.grad,a.grad) # tensor([5.]) tensor([2.])grad_fn:记录创建该张量时所用的方法 print(y.grad_fn,a.grad_fn,b.grad_fn) # 输出 # MulBackward0 object at 0x0000026458E32CA0 # AddBackward0 object at 0x0000026458DA2670 # AddBackward0 object at 0x0000026458DA20D0动态图与静态图 在计算图中根据搭建方式的不同可以将计算图分为动态图和静态图。 动态图的优点灵活、易调节 静态图的优点高效 静态图的缺点不灵活 pytorch中的自动求导系统autograd torch.autograd 梯度的计算在模型训练中是十分重要的然而梯度的计算十分的繁琐所以pytorch提供了一套自动求导的系统我们只需要手动搭建计算图pytorch就能帮我们自动求导。 torch.autograd.backward 功能自动求取梯度 tensors:用于求导的张量如loss retain_graph:保存计算图 create_graph:创建导数计算图用于高阶求导 grad_tensors多梯度权重 张量中的backward()方法实际就是调用了atuograd.backward()方法 y.backward(retain_graphTrue)backward方法中的参数retain_graph是保存计算图的意思如果想要连续进行两次反向传播这个参数必须设置为True因为如果用默认的false执行完第一次之后pytorch会把计算图自动释放掉。 grad_tensors的使用 import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) a.retain_grad() b torch.add(w,1) y0 torch.mul(a,b) y1 torch.add(a,b) loss torch.cat([y0,y1],dim0) grad_tensors torch.tensor([1.,1.]) loss.backward(gradientgrad_tensors) print(w.grad) # tensor([7.])torch.atuograd.grad 功能求取梯度 outputs:用于求导的张量如loss inputs:需要梯度的张量 create_graph创建导数计算图用于高阶求导 retain_graph:保存计算图 grad_outputs:多梯度权重 高阶导数 import torch x torch.tensor([3.],requires_gradTrue) y torch.pow(x,2) # y x**2# 1阶求导 对y进行求导 grad_1 torch.autograd.grad(y,x,create_graphTrue) # create_graph创建导数计算图用于高阶求导 print(grad_1) # (tensor([6.], grad_fnMulBackward0),)# 2阶求导 grad_2 torch.autograd.grad(grad_1[0],x) print(grad_2) # (tensor([2.]),)注意 1、梯度不自动清零 import torch w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)for i in range(4):a torch.add(w,x)b torch.add(w,1)y torch.mul(a,b)y.backward()print(w.grad) 输出 tensor([5.]) tensor([10.]) tensor([15.]) tensor([20.])说明梯度是不断累加的原位操作 .grad.zero_() 就能解决这个问题 2、依赖于叶子结点的结点的require_grad都是True import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) a.retain_grad() b torch.add(w,1) y0 torch.mul(a,b) y1 torch.add(a,b) loss torch.cat([y0,y1],dim0) grad_tensors torch.tensor([1.,1.]) loss.backward(gradientgrad_tensors) print(a.requires_grad,b.requires_grad,y0.requires_grad,y1.requires_grad) # True True True True 3、叶子结点不可执行in-place操作原位操作 import torch# 创建w和x两个节点 w torch.tensor([1.],requires_gradTrue) x torch.tensor([2.],requires_gradTrue)a torch.add(w,x) a.retain_grad() b torch.add(w,1) y0 torch.mul(a,b) y1 torch.add(a,b) w.add_(1)报错信息 w.add_(1) RuntimeError: a leaf Variable that requires grad is being used in an in-place operation.原位操作在原始地址上直接进行改变 逻辑回归 逻辑回归模型是线性的二分类模型 模型表达式 y f(WX b) f(x) 1/(1e**-x) f(x) 称为Sigmoid函数也称为logistic函数 这样的函数我们通过设定一个阈值来进行二分类的工作 比如当y的值小于等于00.5 则最终输出1反之则输出0。 线性回归是分析自变量x与因变量y(标量)之间的关系的方法 逻辑回归是分析自变量x与因变量y(概率)之间的关系的方法 pytorch中构建逻辑回归模型 import torch import torch.nn as nn import matplotlib.pyplot as plt import numpy as np# 步骤1 生成数据 sample_nums 100 mean_value 1.7 bias 1 n_data torch.ones(sample_nums,2) x0 torch.normal(mean_value*n_data,1)bias # 类别0的数据 shape(100,2) y0 torch.zeros(sample_nums) # 类别0的数据 shape(1001) x1 torch.normal(-mean_value*n_data,1)bias # 类别1的数据 shape(100,2) y1 torch.ones(sample_nums) # 类别为1 标签 shape(100,1) train_x torch.cat((x0,x1),0) train_y torch.cat((y0,y1),0)# 步骤2 选择模型 class LR(nn.Module):def __init__(self):super(LR,self).__init__()self.features nn.Linear(2,1)self.sigmoid nn.Sigmoid()def forward(self,x):x self.features(x)x self.sigmoid(x)return xlr_net LR() # 实例化逻辑回归模型# 步骤3 选择损失函数 loss_fn nn.BCELoss() # 交叉熵# 步骤4 选择损失函数 lr 0.01 # 学习率 optimizer torch.optim.SGD(lr_net.parameters(),lrlr,momentum0.9)# 步骤5 模型训练 for interation in range(1000):# 前向传播y_pred lr_net(train_x)# 计算损失loss loss_fn(y_pred.squeeze(),train_y)# 反向传播loss.backward()# 更新参数optimizer.step()# 绘图if interation % 500:mask y_pred.ge(0.5).float().squeeze() # 以0.5为阈值进行分类correct (mask train_y).sum()acc correct.item()/train_y.size(0)plt.scatter(x0.data.numpy()[:,0],x0.data.numpy()[:,1],cr,labelclass 0)plt.scatter(x1.data.numpy()[:,0],x1.data.numpy()[:,1],cb,labelclass 1)w0,w1 lr_net.features.weight[0]w0,w1 float(w0.item()),float(w1.item())plot_b float(lr_net.features.bias[0].item())plot_x np.arange(-6,6,0.1)plot_y (-w0*plot_x - plot_b)/w1plt.xlim(-5,7)plt.ylim(-7,7)plt.plot(plot_x,plot_y)plt.text(-5,5,Loss%.4f%loss.data.numpy())plt.title(interation)plt.legend()plt.show()if acc 0.99:break
http://www.dnsts.com.cn/news/269543.html

相关文章:

  • 海南做网站的技术公司百度目前的推广方法
  • 门户网站网页设计规范哪里购买域名
  • 网站并发要求江苏中淮建设集团有限公司网站
  • 做个网站做什么呢网站模板首页
  • 手机搭建网站短视频营销定义
  • 南京百家湖网站建设h5响应式 wordpress
  • 长沙网站制作哪家网站建设行业细分
  • 庆阳市西峰区做网站阿里云备案网站备案域名
  • 外贸建站 智能营销宝塔面板做网站
  • 对战平台网站怎么建设wordpress会员推广
  • var_dump调试wordpress泰安网络优化
  • 网站建设教育机构茂名网站建设系统
  • 在征婚网站上认识做期货交换链接营销成功案例
  • 北京网页设计公司网站wordpress标签显示
  • 个体工商户年审营业执照谷歌seo和sem
  • 一起做网店 网站打不开小程序ui界面设计
  • 长治专业做网站网站建设+人员+年终总结
  • 想做个网站 在哪买域名和空间网站建设问一问公司
  • 做网站能用假图片吗加强网站的建设与管理
  • flash网站收录微信开店哪个平台好
  • 奉贤青岛网站建设做网站的工资高吗?
  • 网站创建费用0元玩手游平台
  • rdm响应式网站开发网页设计图片向左移是什么代码
  • 营销网站的案例分析深圳网页设计网页制作
  • 做网站开发公司装饰设计资质等级标准
  • 手机网站建设开发ps怎么做电商网站
  • 做课件挣钱的网站中国网信网
  • 开发app和微网站有哪些功能自己要注册商标去哪注册
  • 浙江网站建设哪里好计算机前端开发就业方向
  • phpstudy网站端口建设h5响应式网站有什么建议