Pytorch 从入门到实战总结零基础句句标注

--------教程摘自b站【不愧是计算机博士唐宇迪128集课程一套搞定了我大学4年没学会的PyTorch】PyTorch从入门到实战全套课程(附带课程学习资料 )_哔哩哔哩_bilibili

二、autograd机制

框架干的最厉害的一件事就是帮我们把返向传播全部计算好了!

import torch

需要求导的,可以手动定义

#方法1
x = torch.randn(3,4,requires_grad=True) #随机创建一个3*4的矩阵   参数requires_grad=True表示可以对这个矩阵进行求导

#方法2
x = torch.randn(3,4)
x.requires_grad=True   #也可以手动定义

例如

b = torch.randn(3,4,requires_grad=True)

t = x + b

y = t.sum()    #对输入的tensor数据的某一维度求和

y.backward()  #y的反向传播

b.grad   #y对b的求导

一开始对b初始化了requires_grad=True   所以在对t求导的时候默认可以求导

Pytorch 从入门到实战总结零基础句句标注_第1张图片

#计算流程
x = torch.rand(1)
b = torch.rand(1, requires_grad = True)
w = torch.rand(1, requires_grad = True)
y = w * x 
z = y + b 

x.requires_grad, b.requires_grad, w.requires_grad, y.requires_grad#注意y也是需要的

(False, True, True, True)

x.is_leaf, w.is_leaf, b.is_leaf, y.is_leaf, z.is_leaf  #是不是叶子(分支)

(True, True, True, False, False

反向传播计算

z.backward(retain_graph=True)#如果不清空会累加起来

w.grad

Pytorch 从入门到实战总结零基础句句标注_第2张图片

你可能感兴趣的:(pytorch,深度学习,机器学习)