好吧,你可以不费吹灰之力就计算出海森矩阵!

假设有两个变量:x = tf.Variable(np.random.random_sample(), dtype=tf.float32)

y = tf.Variable(np.random.random_sample(), dtype=tf.float32)

以及使用这两个变量定义的函数:f = tf.pow(x, cons(2)) + cons(2) * x * y + cons(3) * tf.pow(y, cons(2)) + cons(4) * x + cons(5) * y + cons(6)

其中:def cons(x):

return tf.constant(x, dtype=tf.float32)

所以用代数术语来说,这个函数是

现在,我们定义了一种计算hessian的方法:def compute_hessian(fn, vars):

mat = []

for v1 in vars:

temp = []

for v2 in vars:

# computing derivative twice, first w.r.t v2 and then w.r.t v1

temp.append(tf.gradients(tf.gradients(f, v2)[0], v1)[0])

temp = [cons(0) if t == None else t for t in temp] # tensorflow returns None when there is no gradient, so we replace None with 0

temp = tf.pack(temp)

mat.append(temp)

mat = tf.pack(mat)

return mat

并称之为:# arg1: our defined function, arg2: list of tf variables associated with the function

hessian = compute_hessian(f, [x, y])

现在我们获取一个tensorflow会话,初始化变量,然后运行hessian:sess = tf.Session()

sess.run(tf.initialize_all_variables())

print sess.run(hessian)

注意:由于我们使用的函数本质上是二次函数(并且我们是两次微分),因此无论变量如何,返回的hessian值都是常量。

输出为:[[ 2. 2.]

[ 2. 6.]]

python求高阶导数_TensorFlow:计算Hessian矩阵(和高阶导数)相关推荐

  1. Maltab计算hessian矩阵 hessian function简单例子

    Hessian矩阵其实就是一个多元函数的所有二次偏导数构成的雅克比矩阵,matlab中求解的方法是对雅克比矩阵再求雅克比矩阵. 例如 syms x y z f=x^2+y^2+z^2+x*y*z; J ...

  2. matlab计算hessian矩阵

    根据评论区中的内容,我们回顾数学定义: hessian矩阵 = 梯度矩阵的雅可比矩阵 代码如下: syms x y z; f1=(x^2-2*x)*exp(-x^2-y^2-x*y); % f = x ...

  3. python求高阶导数_python – TensorFlow:计算Hessian矩阵(和更高阶导数)

    好吧,你可以毫不费力地计算粗体矩阵! 假设您有两个变量: x = tf.Variable(np.random.random_sample(), dtype=tf.float32) y = tf.Var ...

  4. python求e^x,计算e^x的最快方法?

    计算e^x的最快方法是什么,给定x可以是浮点值.在 现在我用python的数学库来计算这个,下面是完整的代码,其中result = -0.490631 + 0.774275 * math.exp(0. ...

  5. python求给定初值多元函数Hesse矩阵

    代码如下: import numpy as np import sympy as sp def jacobian(f,x):a,b=np.shape(x)#变量个数x1,x2=sp.symbols(' ...

  6. python求周长_计算三角形的周长和面积

    计算三角形的周长和面积 题目要求 写一段程序,让用户输入三角形的三条边长,如果三条边长不能构成三角形,则提示用户重新输入 如果可以构成三角形,则计算周长和面积 思路分析 对于用户的输入,首先要约定格式 ...

  7. python求零点_python – 计算大序列的过零点的结果不同

    这个问题源于查看 this关于计算 zero crossings数量的问题的答案.提供了几个解决问题的答案,但NumPy appproach在时间上摧毁了其他问题. 问题:为什么NumPy解决方案提供 ...

  8. c语言数组求欧几里得距离,计算scipy-csr矩阵中的欧氏距离

    所以让我们创建你的矩阵(可惜你没有给出我可以复制粘贴的输入)In [114]: data=[4,1,2,2,1,1,4,3,2] In [115]: col=[0,1,1,2,2,3,4,4,4] I ...

  9. 使用Python求根据提成计算的奖金

    本程序在Python3的IDLE下运行通过,在Python2下出现的raw_input被取代了. 题目如下:企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10 ...

最新文章

  1. Banknote Dataset(钞票数据集)介绍
  2. 通过游戏来学习CSS的Flex布局
  3. (转)使用Spring配置文件实现事务管理
  4. 2020人工神经网络第一次作业
  5. Shell脚本详细介绍
  6. 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?​​​​​​​
  7. 2通过程序获得环境变量,getenv(),setenv()函数和unsetenv()函数,env查看环境变量,echo输出指定的环境变量
  8. 联众打码写滑动_如何能够对接联众打码平台
  9. 信道编码与信源编码基本
  10. 联想微型计算机c255r拆机,联想R9000P开箱拆机,送给你的618选购参考
  11. 原版安装Win10 1909专业版 64位MSDN镜像2020 05
  12. 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
  13. 〖Python零基础入门篇③〗- Pycharm编辑器不能复制粘贴怎么办?
  14. 视频教程-Go快速入门强化-Go语言
  15. 弘辽科技:淘宝店铺三低代表着什么?如何提升到三高?
  16. 【C#】改变图片大小
  17. Android Studio初学者实例:RecyclerView学习--模仿今日头条
  18. Windows10 Clion 无法打开文件cudart.lib
  19. window子系统 linux wsl ubuntu GUI 可视化ubuntu桌面
  20. cgm 转jpg java_获取图片,音频,视频,压缩包文件类型的工具类

热门文章

  1. bcb series清除前面的点_新iPhone前面板曝光:丑刘海还在,但边框窄了
  2. mysql大项目:新闻管理系统
  3. 用matlab做元胞自动机预测,元胞自动机(Cellular Automata)与城市规划及其MATLAB实现——莆田市城市发展预测...
  4. gabor 幅值域 matlab,组合局部多通道Gabor滤波器和ICA的人脸描述与识别
  5. 多目标遗传算法与优化的关系
  6. matlab模拟调制过程,模拟信号的调制方式有哪三种?调制与解调是个啥过程
  7. mac mysql-share_mac下安装mysql
  8. python pymysql用法_Python使用pymysql小技巧
  9. Java 算法 数列
  10. html5 retina 1像素,走向视网膜(Retina)的Web时代