深度学习--自动微分
程序员文章站
2022-03-01 12:57:32
...
例子1
import torch
x = torch.arange(4.0)
x.requires_grad_(True) #标记需要记录该变量的微分
y = 2*torch.dot(x,x) #计算函数
y.backward()
print(x.grad)
首先给x分配初值[0,1,2,3],标记成需要追踪梯度的变量。计算函数y=2x⊤x 。代码y.backward()
将y关于变量x的梯度存入x.grad
中。
再
例子2
对于下述代码,z函数包含两个向量变量,分别求出z函数关于x和y的梯度。
import torch
x = torch.arange(4.0)
y = torch.arange(10.0,14.0)
x.requires_grad_(True)
y.requires_grad_(True) #标记成需要追踪梯度的变量
z=torch.dot(x,y)
z.backward() #求梯度
x.grad
y.grad
输出:
tensor([10., 11., 12., 13.])
tensor([0., 1., 2., 3.])
即z关于x的梯度是y,z关于y的梯度是x。
上一篇: C语言使用openssl库解析TLS报文(SNI和证书)
下一篇: AOP基于纯注解开发
推荐阅读
-
深度学习环境搭建(ubuntu16.04+Titan Xp安装显卡驱动+Cuda9.0+cudnn+其他软件)
-
分析机器学习在Quora实际运营中的深度应用
-
零基础学习AJAX之制作自动校验的表单
-
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
-
SSM框架学习:使用MyBatis Generator自动创建代码
-
13个最常用的Python深度学习库介绍
-
Intel开发出深度学习新算法SLIDE:突破性提升CPU模型训练速度
-
Javascript特效学习之选项卡卡定时自动切换代码教程
-
深度学习+超级计算:上帝的计算机长什么样?
-
2019全球数字生态大会|腾讯优图戴宇荣:用深度学习技术为工业行业创造价值