小编给大家分享一下关于TensorFlow Autodiff自动微分的案例,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
如下所示:
with tf.GradientTape(persistent=True) as tape:
z1 = f(w1, w2 + 2.)
z2 = f(w1, w2 + 5.)
z3 = f(w1, w2 + 7.)
z = [z1,z3,z3]
[tape.gradient(z, [w1, w2]) for z in (z1, z2, z3)]
输出结果
[[<tf.Tensor: id=56906, shape=(), dtype=float32, numpy=40.0>,
<tf.Tensor: id=56898, shape=(), dtype=float32, numpy=10.0>],
[<tf.Tensor: id=56919, shape=(), dtype=float32, numpy=46.0>,
<tf.Tensor: id=56911, shape=(), dtype=float32, numpy=10.0>],
[<tf.Tensor: id=56932, shape=(), dtype=float32, numpy=50.0>,
<tf.Tensor: id=56924, shape=(), dtype=float32, numpy=10.0>]]
with tf.GradientTape(persistent=True) as tape:
z1 = f(w1, w2 + 2.)
z2 = f(w1, w2 + 5.)
z3 = f(w1, w2 + 7.)
z = [z1,z2,z3]
tape.gradient(z, [w1, w2])
输出结果
[<tf.Tensor: id=57075, shape=(), dtype=float32, numpy=136.0>,
<tf.Tensor: id=57076, shape=(), dtype=float32, numpy=30.0>]
如果对一个listz=[z1,z2,z3]求微分,其结果将自动求和,而不是返回z1、z2和z3各自对[w1,w2]的微分。
补充知识:Python/Numpy 矩阵运算符号@
如下所示:
A = np.matrix('3 1; 8 2')
B = np.matrix('6 1; 7 9')
A@B
matrix([[25, 12],
[62, 26]])
看完了这篇文章,相信你对关于TensorFlow Autodiff自动微分的案例有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。