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

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的梯度,相当于就是求一个二次函数的一阶导。

你可能感兴趣的:(pytorch学习笔记,神经网络)