PyTorch计算图

PyTorch计算图

  • 计算图(Computational Graph)

计算图(Computational Graph)

计算图是计算代数中的一个基础处理方法,我们可以通过一个有向图来表示一个给定的数学表达式,并可以根据图的特点快速方便对表达式中的变量进行求导。而神经网络的本质就是一个多层复合函数, 因此也可以通过一个图来表示其表达式。

#torch.autograd.Variable 实现自动求导
"""
本质上Variable和Tensor没有什么区别,
不过Variable会放在一个计算图里面,
可以进行前向传播和反向传播以及求导
"""
import torch
from torch.autograd import Variable
# requires_grad 表示是否对其求梯度,默认是False
x = Variable(torch.Tensor([3]), requires_grad=True)
y = Variable(torch.Tensor([5]), requires_grad=True)
z = 2 * x * x + y * y + 4
# 对 x 和 y 分别求导
z.backward()
# x 的导数和 y 的导数
#x =3*2*2
#y = 5*2
print('dz/dx: {}'.format(x.grad.data))
print('dz/dy: {}'.format(y.grad.data))

输出结果:

G:\ProgramData\Anaconda3\envs\pyTorch\python.exe D:/ML/learn/pyTorch/task2.py
dz/dx: tensor([12.])
dz/dy: tensor([10.])

你可能感兴趣的:(PyTorch)