zoukankan      html  css  js  c++  java
  • Pytorch的Autograd模块:自动微分

    一.写在前面:

            深度学习的算法本质上是通过反向传播求导数,PyTorch的Autograd模块实现了此功能。在Tensor上的所有操作,Autograd都能为他们自动提供微分。

            autograd.Variable是Autograd中的核心类,它简单封装了Tensor,并支持几乎所有Tensor操作。Tensor在被封装为Variable之后,可以调用它的.backwoard实现反向传播,自动计算所有梯度。

              Variable的三个属性。1.data:保存Variable所包含的Tensor。

                                                 2.grad:保存data对应的梯度,grad也是个Variable,而不是Tensor,它和data的形状一样。

                                                 3.grad_fn:指向一个Function对象,这个Functino用来反向传播计算输入的梯度。

    二:

        构建Variable,要注意传入一个参数requires_grad=True,这个参数表示是否对这个变量求梯度,默认的是False,也就是不对这个变量求梯度,这里我们希望得到这些变量的梯度。

          

     上面的代码有一行y.backward(),等价于y.backward(torch.FloatTensor([1])),只不过对于标量求导,里面的参数就不用写了。

  • 相关阅读:
    【福利】idea最新激活码,绝对可用
    最好用的录屏工具Bandicam (班迪录屏)
    markdown改变字体、颜色和大小
    idea 2020最新破解教程(可激活至2089年)
    解决电脑桌面图标变白消失
    常见排序
    算法
    uWSGI、WSGI和uwsgi
    RabbitMQ
    flask请求和应用上下文
  • 原文地址:https://www.cnblogs.com/chmusk/p/12465867.html
Copyright © 2011-2022 走看看