资讯专栏INFORMATION COLUMN

在pytorch中获得计算图和自行求导数

89542767 / 565人阅读

  本文关键阐述了在pytorch中获得计算图和自行求导数,文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,需用的同学可以参考下


  序言:


  今日聊聊pytorch的计算图和自行求导数,我们首先从简易事例来说,下边是个简单函数设立了yy和xx相互关系

01.png

  然后我们结点和边形式表示上面公式:


  上面的式子可以用图的形式表达,接下来我们用torch来计算x导数,首先我们创建一个tensor并且将其requires_grad设置为True表示随后反向传播会对其进行求导。

02.png

03.png

  x=torch.tensor(3.,requires_grad=True)


  然后写出


  y=3*x**2+4*x+2
  y.backward()
  x.grad


  通过调用y.backward()来进行求导,这时就可以通过x.grad来获得x的导数

  x.requires_grad_(False)

  可以通过requires_grad_让x不参与到自动求导


  for epoch in range(3):
  y=3*x**2+4*x+2
  y.backward()
  print(x.grad)
  x.grad.zero_()


  如果这里没有调用x.grad_zero_()就是把每次求导数和上一次求导结果进行累加。


  链式法则

04.png

  相对于z对x求偏导时,我们可以将y看成常数,这样x导数是1那么


  x=torch.tensor([1.,2.,3.],requires_grad=True)
  y=x*2+3
  z=y**2
  print(out)#tensor(51.6667,grad_fn=<MeanBackward0>)
  print(x.grad)#tensor([6.6667,9.3333,12.0000])

05.png

06.png

  对于一个简单的网络,我们可以手动计算梯度,但是如果摆在你面前的是一个有152层的网络怎么办?或者该网络有多个分支。这时你的计算复杂程度可想而知。接下来会带来更深入自动求导内部机制


  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128846.html

相关文章

  • LeCun推荐:最新PyTorch图神经网络库,速度快15倍

    摘要:图神经网络是近年发展起来的一个很有前景的深度学习方向,也是一种强大的图点云和流形表示学习方法。地址基于的几何深度学习扩展库是一个基于的几何深度学习扩展库,用于不规则结构输入数据,例如图点云和流形。与相比,训练模型的速度快了倍。 过去十年来,深度学习方法(例如卷积神经网络和递归神经网络)在许多领域取得了前所未有的成就,例如计算机视觉和语音识别。研究者主要将深度学习方法应用于欧氏结构数据 (Eu...

    pinecone 评论0 收藏0
  • tensorflow和pytorch的区别

    TensorFlow和PyTorch是两个最流行的深度学习框架之一。虽然这两个框架都可以完成大多数深度学习任务,但它们之间仍有很多区别。本文将探讨TensorFlow和PyTorch之间的一些区别。 1. 静态图和动态图 TensorFlow使用静态图,它需要先定义计算图,然后再执行计算。这使得TensorFlow在执行大规模计算时非常高效。PyTorch使用动态图,它允许用户在执行计算时动态...

    lidashuang 评论0 收藏1671
  • 深度学习这么讲你肯定能读懂

    摘要:梯度下降算法梯度是个啥我想最开始接触梯度的各位是在方向导数那一章接触这一概念的,如果老师没怎么讲的话可能有些人还不知道梯度是个向量。在二维条件下,因为有了两个偏导数,所以这个向量能表示一圈。 讲你肯定能懂的机器学习多维极值求解事先说明本文面向学习过高等数学统计学和线性代数基础知识的本科生,并假设读者拥有基本的矩阵运算和求导运算的相关知识,类似梯度,方向导数、Hessian Matrix这些东...

    RancherLabs 评论0 收藏0
  • 陈天奇团队发布NNVM编译器,性能优于MXNet,李沐撰文介绍

    摘要:亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器。项目作者之一陈天奇在微博上这样介绍这个编译器我们今天发布了基于工具链的深度学习编译器。陈天奇团队对的性能进行了基准测试,并与进行了比较。 亚马逊和华盛顿大学今天合作发布了开源的端到端深度学习编译器NNVM compiler。先提醒一句,NNVM compiler ≠ NNVM。NNVM是华盛顿大学博士陈天奇等人2016年发布的模块化...

    izhuhaodev 评论0 收藏0
  • PyTorch一周年战绩总结:是否比TensorFlow来势凶猛?

    摘要:截止到今天,已公开发行一周年。一年以来,社区中的用户不断做出贡献和优化,在此深表感谢。所以与衡量它的指标包括在机器学习研究论文中的使用。来自香港科技大学的在上推出了面向普通观众的在线课程。 Yann LeCun Twitter截止到今天,PyTorch 已公开发行一周年。一年以来,我们致力于打造一个灵活的深度学习研究平台。一年以来,PyTorch 社区中的用户不断做出贡献和优化,在此深表感谢...

    ymyang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<