计算梯度的方法

计算梯度的⽅法
计算梯度的三种⽅法:数值法(numerical gradient),解析法(analytic gradient),反向传播法(Back propagation gradient)⼀个简单的函数:
:
结果:
f(x,y,z)=(x+y)z # coding=gbk
"""
function : f(x,y,z) = (x+y)z
"""
# first method  解析法
def grad1(x,y,z):
dx = z
dy = z
dz = (x+y)
return (dx,dy,dz)
# second method  数值法
def grad2(x,y,z,epi):
# dx
fx1 = (x+epi+y)*z
fx2 = (x-epi+y)*z
dx = (fx1-fx2)/(2*epi)
# dy
fy1 = (x+y+epi)*z
照射雷达fy2 = (x+y-epi)*z
dy = (fy1-fy2)/(2*epi)
# dz
fz1 = (x+y)*(z+epi)
fz2 = (x+y)*(z-epi)
dz = (fz1-fz2)/(2*epi)
return (dx,dy,dz)
# third method 反向传播法
def grad3(x,y,z):
very much
# forward
p = x+y;
f = p*z;
# backward
dp = z
dz = p
dx = 1 * dp
dy = 1 * dp
return (dx,dy,dz)
print ("<df/dx,df/dy,df/dz>: %.2f %.2f %.2f"%(grad1(1,2,3)))
print ("<df/dx,df/dy,df/dz>: %.2f %.2f %.2f"%(grad2(1,2,3,1e-5)))
print ("<df/dx,df/dy,df/dz>: %.2f %.2f %.2f"%(grad3(1,2,3)))
1
2
streambox vcr
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27斜面的机械效率
28
29
30
31现代食品科技
32
33
34
35
第一物联网
36
37
38
39
40
<df/dx,df/dy,df/dz>: 3.00 3.00 3.00
<df/dx,df/dy,df/dz>: 3.00 3.00 3.00
<df/dx,df/dy,df/dz>: 3.00 3.00 3.00

本文发布于:2024-09-21 00:34:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/433296.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:计算   反向   机械效率   梯度   传播   斜面
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议