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

胶州住房和城乡建设厅网站天津网上办事大厅官网

胶州住房和城乡建设厅网站,天津网上办事大厅官网,驻马店制作网站的公司,永久免费个人网站这里写目录标题1 Pytorch计算图和自动微分2 将单个数据从计算图中剥离 .detach3 使用with torch.go_grad(): 包含的代码段不会计算微分1 Pytorch计算图和自动微分 从功能上理解#xff1a; 计算图就是类似于数据结构中的无环有向图#xff0c;Pytorch中的计算图就是为了记录… 这里写目录标题1 Pytorch计算图和自动微分2 将单个数据从计算图中剥离 .detach3 使用with torch.go_grad(): 包含的代码段不会计算微分1 Pytorch计算图和自动微分 从功能上理解 计算图就是类似于数据结构中的无环有向图Pytorch中的计算图就是为了记录一个数据从开始到最后所作的操作和参数这样在进行反向传播时候(backward)就会有足够的参数去计算梯度得到最终值相较于操作过程中数据梯度之后再通过优化器(optimizer.step())对目标函数进行优化就几乎完成了一轮模型训练的目的。 将Tensor的requires_grad属性设置为True时Pytorch的torch.autograd会自动地追踪它的计算轨迹当需要计算微分的时候只需要对最终计算结果的Tensor调用backward方法中间所有计算节点的微分就会被保存在grad属性中 import torchx torch.arange(9, dtypetorch.float).view(3,3) print(x默认不缓存计算轨迹,x, x.requires_grad) y torch.randn(3,3, requires_gradTrue) print(y设置requires_grad属性,y, y.requires_grad) z torch.sum(torch.mm(x, y)) z.backward() print(得到Z, z, z.requires_grad) print(经过计算未保留x的梯度, x.grad) print(经过计算保留了y的梯度, y.grad)out: x默认不缓存计算轨迹 tensor([[0., 1., 2.],[3., 4., 5.],[6., 7., 8.]]) False y设置requires_grad属性 tensor([[-0.2810, -2.7142, 1.8053],[-0.6549, 1.0730, -1.9470],[ 0.5629, -0.0692, -0.7376]], requires_gradTrue) True 得到Z tensor(-32.7122, grad_fnSumBackward0) True 经过计算未保留x的梯度 None 经过计算保留了y的梯度 tensor([[ 9., 9., 9.],[12., 12., 12.],[15., 15., 15.]])从上面可以看出y设置了requires_grad为True时在计算过后Pytorch会缓存其梯度信息而x为设置该属性即未保存该梯度信息。 汇总 Tensor属性作用针对Tensor构造时的属性后期也可以输出查看device该节点运行的设备环境即CPU/GPUrequires_grad自动微分机是否需要对该节点求导缺省为False针对Tensor输出时的属性构造时不可指定用来输出查看grad输出节点对该节点的梯度缺省为Nonegrad_fn中间计算节点关于全体输入节点的映射记录了前向传播经过的操作。叶节点为Noneis_leaf该节点是否为叶节点 当需要计算中间数据(x)的梯度时只需要将最后的结果值进行backward()后再打印x.grad即可 2 将单个数据从计算图中剥离 .detach 一般在模型训练中计算评价指标时我们需要停止数据的计算轨迹缓存则可以使用.detach将数据从计算图中剥离出去这个是针对单个数据的。 import torch x torch.rand(3, 3, requires_gradTrue) w torch.ones(3, 3, requires_gradTrue) print(x) print(w) yy torch.mm(w, x) print(yy.requires_grad)detach_yy yy.detach() #一般模型中使用loss计算评价指标时都会用类似这样的式子将loss从计算图中剥离备份出去。 y torch.sum(yy) y.backward()print(进行剥离后detach_yy的属性, detach_yy.grad) print(x的梯度缓存, x.grad) print(w的梯度缓存, w.grad)out: tensor([[0.8037, 0.2443, 0.3994],[0.9879, 0.9484, 0.4035],[0.3057, 0.6682, 0.4186]], requires_gradTrue) tensor([[1., 1., 1.],[1., 1., 1.],[1., 1., 1.]], requires_gradTrue) True 进行剥离后detach_yy的属性 None x的梯度缓存 tensor([[3., 3., 3.],[3., 3., 3.],[3., 3., 3.]]) w的梯度缓存 tensor([[1.4474, 2.3398, 1.3925],[1.4474, 2.3398, 1.3925],[1.4474, 2.3398, 1.3925]])3 使用with torch.go_grad(): 包含的代码段不会计算微分 想必这个在模型测试阶段大家都会用之所以用这个是将模型测试阶段的微分不计算在模型中否则模型把测试集都学过了那以后拿什么进行模型评价呢 import torch x torch.rand(3, 3, requires_gradTrue) w torch.ones(3, 3, requires_gradTrue) y torch.sum(torch.mm(w, x)) print(正常缓存梯度信息, y.requires_grad)with torch.no_grad():y torch.sum(torch.mm(w, x))print(在with torch.no_grad中, y.requires_grad)out: 正常缓存梯度信息 True 在with torch.no_grad中 False
http://www.w-s-a.com/news/76441/

相关文章:

  • 做伤残鉴约号网站购物网站建设新闻
  • 黄江网站建设公司自己房子做民宿挂什么网站
  • 手游网站做cpc还是cpm广告号宣武郑州阳网站建设
  • vs连接数据库做网站建立网站
  • 电商网站设计图片素材p2p网站建设石家庄
  • 莲塘网站建设如何文字推广一个婚恋网站
  • 医院网站建设工作汇报WordPress不发邮件了
  • 怎么做外语网站个人网页设计作品ps
  • 网站原型怎么做vps如何建两个网站
  • 商城网站建设源码嘉兴seo计费管理
  • 城乡建设网站证件查询系统wordpress 时间代码
  • php网站建设 关键技术做网站哪家正规
  • 网站开发用什么写得比较好谷歌的英文网站
  • 青岛网站建设公司在哪vivo手机商城
  • 兼职刷客在哪个网站做哪个网站做淘宝客
  • 眼科医院网站开发网络营销特点是什么
  • 提交网站给百度增加wordpress插件
  • 网站建设企业官网体验版是什么Wordpress哪个模板最快
  • 美丽说网站模板湖北可以做网站方案的公司
  • 北京西站进站最新规定建设网站的提成是多少
  • wordpress站点如何加速网站建设描述怎么写
  • 如何免费建造网站免费vi模板网站
  • 商丘做网站多少钱扬州大发网站建设
  • 网站建设哪家性价比高自己做项目的网站
  • 成立一个网站济宁营销型网站建设
  • 南通购物网站建设设计类平台网站
  • 专业网站建设咨询thinkphp网站源码下载
  • 怎么制作一个国外网站网站推广找哪家公司好
  • 免费做网站怎么做网站想在网上卖东西怎么注册
  • 淘宝网站建设的策划书网投怎么做网站