Pytorch简单学习入门--Autograd自动求导

本文深入探讨了Pytorch中Autograd自动求导机制的核心概念,包括如何使用torch.tensor进行操作追踪,以及通过.backward()自动计算梯度的过程。文章强调了requires_grad参数的重要性,并通过实例演示了如何计算二次函数的一阶导数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Autograd自动求导

autograd是Pytorch的核心,可以用这个包来训练神经网络。torch.tensor是这个包的核心类,主要参数是requires_grad=,如果为True,代表追踪tensor的所有操作。当完成操作后,可以通过调用.backward来自动计算梯度。这里和莫烦老师的笔记有点不同,新的Pytorch版本里面,将Tensor和Variable进行了合并。

import torch

tensor = torch.tensor([[1., 3.], [1., 3.]], requires_grad=True)
# out = torch.mean(tensor.mul(tensor))
out = torch.mean(tensor * tensor)
print(out)
out.backward()
print(tensor.grad)

输出结果为:

tensor(5., grad_fn=<MeanBackward0>)
tensor([[0.5000, 1.5000],
        [0.5000, 1.5000]])

这里有三点需要注意:

  1. 对于requires_grad必须要求tensor是float。如果是int,必须在后面加上dtype=torch.float。
  2. out必须是标量,之后才可以用backward。
  3. 利用.grad显示出关于tensor的梯度,相当于就是求一个二次函数的一阶导。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值