Pytorch--自动求导

        这个自动求导功能其实就是利用了链式求导法则,利用反向传播来求出对应参数的偏导。0.41版本后,pytorch就直接将其合并进了Tensor类里面了。

Tensor类是autograd里面的核心类,通过属性.requires_grad,将其设置为True之后,就会在后续的操作中追踪其所有的操作,形成一个计算网络。然后就可以利用链式法则对其进行梯度传播了。完成计算之后,调用.backward()函数(即反向传播在pytorch里面的那个函数)就可以将该Tensor的所有梯度累积到.grad属性中。

另外一个很重要的类就是Function。Function里面记录的其实就是在前向传播的过程中该张量的计算操作,便于反向传播求导。Tensor.grad_fn属性就对应该类。

实例如下:

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

输出应为:

      

自己创建的张量x是默认没有grad_fn的,并且若无设置,requires_grad也会默认为false。

做加法运算后:

z = y * y * 3
out = z.mean()
print(z, out)

 输出:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个开源的机器学习框架,它提供了一个灵活且高效的工具集,可用于构建各种类型的深度学习模型。PyTorch 使用动态计算图的方式来定义和计算网络模型,这使得模型的构建更加灵活,并提供了更好的调试和可视化功能。PyTorch具有丰富的库和接口,可以方便地进行数据加载、模型定义、训练和推断。 PyTorch-Memlab是一个用于分析PyTorch模型内存占用的工具。深度学习模型通常需要大量的内存来存储网络结构、参数和计算中间结果。PyTorch-Memlab通过记录和分析模型的内存使用情况,帮助用户优化模型的内存消耗,提高模型的运行效率。它可以用于查看各个模块和操作的内存使用情况,帮助用户识别内存泄露和优化模型的内存占用。 使用PyTorch,我们可以使用简单而直观的方式来构建深度学习模型,它提供了丰富的API和函数,用于定义和训练模型、优化模型参数、评估模型性能等。PyTorch还支持自动求导,使得梯度计算更加简单和高效。它还提供了用于并行化和分布式训练的工具,使得处理大规模数据和模型变得更加方便和高效。 PyTorch-Memlab可以帮助我们深入了解模型的内存占用情况,它可以告诉我们哪些模块或操作占用了大量的内存,帮助我们找到内存消耗较大的瓶颈和优化空间。通过使用PyTorch-Memlab,我们可以减少模型的内存占用,并提高模型的性能和可扩展性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值