python pytorch学习(二)

自动微分

pytorch所有网络核心是autograde自动求导包。autograde.Variable是包的核心类,它包装了张量,并且几乎支持所有的操作。可以调用.backward()方法,然后所有的梯度计算会自动完成。注意的是,通过.data属性来访问原始的张量。

引用:{

Variable 和 Function 是相互联系的, 并且它们构建了一个非循环的图, 编码了一个完整的计算历史信息. 每一个 variable(变量)都有一个 .grad_fn 属性, 它引用了一个已经创建了 Variable 的 Function (除了用户创建

的 Variable `` 之外 - 它们的 ``grad_fn is None ).

如果你想计算导数, 你可以在 Variable 上调用 .backward() 方法. 如果 Variable 是标量的形式(例如, 它包含一个元素数据), 你不必指定任何参数给 backward(), 但是, 如果它有更多的元素. 你需要去指定一个 grad_output 参数, 该参数是一个匹配 shape(形状)的张量。

}

#coding=utf-8
import torch
from torch.autograd import Variable

x = Variable(torch.ones(2,2),requires_grad=True)
print x

y = x + 2
print y

z = y*y*3
print z

out = z.mean()
print out

out.backward()
print x.grad

结果:

Variable containing:
 1  1
 1  1
[torch.FloatTensor of size 2x2]


Variable containing:
 3  3
 3  3
[torch.FloatTensor of size 2x2]


Variable containing:
 27  27
 27  27
[torch.FloatTensor of size 2x2]


Variable containing:
 27
[torch.FloatTensor of size 1]


Variable containing:
 4.5000  4.5000
 4.5000  4.5000
[torch.FloatTensor of size 2x2]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值