时间:2021-05-23
1. 函数求一阶导
import tensorflow as tftf.enable_eager_execution()tfe=tf.contrib.eagerfrom math import pidef f(x): return tf.square(tf.sin(x))assert f(pi/2).numpy()==1.0sess=tf.Session()grad_f=tfe.gradients_function(f)print(grad_f(np.zeros(1))[0].numpy())2. 高阶函数求导
import numpy as npdef f(x): return tf.square(tf.sin(x)) def grad(f): return lambda x:tfe.gradients_function(f)(x)[0] x=tf.lin_space(-2*pi,2*pi,100)# print(grad(f)(x).numpy())x=x.numpy()import matplotlib.pyplot as pltplt.plot(x,f(x).numpy(),label="f")plt.plot(x,grad(f)(x).numpy(),label="first derivative")#一阶导plt.plot(x,grad(grad(f))(x).numpy(),label="second derivative")#二阶导plt.plot(x,grad(grad(grad(f)))(x).numpy(),label="third derivative")#三阶导plt.legend()plt.show() def f(x,y): output=1 for i in range(int(y)): output=tf.multiply(output,x) return output def g(x,y): return tfe.gradients_function(f)(x,y)[0] print(f(3.0,2).numpy()) #f(x)=x^2print(g(3.0,2).numpy()) #f'(x)=2*xprint(f(4.0,3).numpy())#f(x)=x^3print(g(4.0,3).numpy())#f(x)=3x^23. 函数求一阶偏导
x=tf.ones((2,2))with tf.GradientTape(persistent=True) as t: t.watch(x) y=tf.reduce_sum(x) z=tf.multiply(y,y) dz_dy=t.gradient(z,y)print(dz_dy.numpy())dz_dx=t.gradient(z,x)print(dz_dx.numpy())for i in [0, 1]: for j in [0, 1]: print(dz_dx[i][j].numpy() )4. 函数求二阶偏导
x=tf.constant(2.0)with tf.GradientTape() as t: with tf.GradientTape() as t2: t2.watch(x) y=x*x*x dy_dx=t2.gradient(y,x)d2y_dx2=t.gradient(dy_dx,x) print(dy_dx.numpy())print(d2y_dx2.numpy())以上这篇tensorflow求导和梯度计算实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在PyTorch中可以方便的验证SoftMax交叉熵损失和对输入梯度的计算关于softmax_cross_entropy求导的过程,可以参考HERE示例:#-*
pytorch中如何只让指定变量向后传播梯度?(或者说如何让指定变量不参与后向传播?)有以下公式,假如要让L对xvar求导:(1)中,L对xvar的求导将同时计
方法一:手动计算变量的梯度,然后更新梯度importtorchfromtorch.autogradimportVariable#定义参数w1=Variable(
本文实例为大家分享了pytorch使用Variable实现线性回归的具体代码,供大家参考,具体内容如下一、手动计算梯度实现线性回归#导入相关包importtor
本文实例讲述了Python实现简单的多任务mysql转xml的方法。分享给大家供大家参考,具体如下:为了需求导出的格式尽量和navicat导出的xml一致。用的