python求高阶导数_TensorFlow:计算Hessian矩阵(和高阶导数)
好吧,你可以不费吹灰之力就计算出海森矩阵!
假设有两个变量: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矩阵(和高阶导数)相关推荐
- Maltab计算hessian矩阵 hessian function简单例子
Hessian矩阵其实就是一个多元函数的所有二次偏导数构成的雅克比矩阵,matlab中求解的方法是对雅克比矩阵再求雅克比矩阵. 例如 syms x y z f=x^2+y^2+z^2+x*y*z; J ...
- matlab计算hessian矩阵
根据评论区中的内容,我们回顾数学定义: hessian矩阵 = 梯度矩阵的雅可比矩阵 代码如下: syms x y z; f1=(x^2-2*x)*exp(-x^2-y^2-x*y); % f = x ...
- python求高阶导数_python – TensorFlow:计算Hessian矩阵(和更高阶导数)
好吧,你可以毫不费力地计算粗体矩阵! 假设您有两个变量: x = tf.Variable(np.random.random_sample(), dtype=tf.float32) y = tf.Var ...
- python求e^x,计算e^x的最快方法?
计算e^x的最快方法是什么,给定x可以是浮点值.在 现在我用python的数学库来计算这个,下面是完整的代码,其中result = -0.490631 + 0.774275 * math.exp(0. ...
- python求给定初值多元函数Hesse矩阵
代码如下: import numpy as np import sympy as sp def jacobian(f,x):a,b=np.shape(x)#变量个数x1,x2=sp.symbols(' ...
- python求周长_计算三角形的周长和面积
计算三角形的周长和面积 题目要求 写一段程序,让用户输入三角形的三条边长,如果三条边长不能构成三角形,则提示用户重新输入 如果可以构成三角形,则计算周长和面积 思路分析 对于用户的输入,首先要约定格式 ...
- python求零点_python – 计算大序列的过零点的结果不同
这个问题源于查看 this关于计算 zero crossings数量的问题的答案.提供了几个解决问题的答案,但NumPy appproach在时间上摧毁了其他问题. 问题:为什么NumPy解决方案提供 ...
- 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 ...
- 使用Python求根据提成计算的奖金
本程序在Python3的IDLE下运行通过,在Python2下出现的raw_input被取代了. 题目如下:企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10 ...
最新文章
- Banknote Dataset(钞票数据集)介绍
- 通过游戏来学习CSS的Flex布局
- (转)使用Spring配置文件实现事务管理
- 2020人工神经网络第一次作业
- Shell脚本详细介绍
- 【AI初识境】被Hinton,DeepMind和斯坦福嫌弃的池化,到底是什么?​​​​​​​
- 2通过程序获得环境变量,getenv(),setenv()函数和unsetenv()函数,env查看环境变量,echo输出指定的环境变量
- 联众打码写滑动_如何能够对接联众打码平台
- 信道编码与信源编码基本
- 联想微型计算机c255r拆机,联想R9000P开箱拆机,送给你的618选购参考
- 原版安装Win10 1909专业版 64位MSDN镜像2020 05
- 【产业互联网周报】阿里云栖大会、百度世界大会召开:阿里重推“云端一体”、百度AI全面升级...
- 〖Python零基础入门篇③〗- Pycharm编辑器不能复制粘贴怎么办?
- 视频教程-Go快速入门强化-Go语言
- 弘辽科技:淘宝店铺三低代表着什么?如何提升到三高?
- 【C#】改变图片大小
- Android Studio初学者实例:RecyclerView学习--模仿今日头条
- Windows10 Clion 无法打开文件cudart.lib
- window子系统 linux wsl ubuntu GUI 可视化ubuntu桌面
- cgm 转jpg java_获取图片,音频,视频,压缩包文件类型的工具类
热门文章
- bcb series清除前面的点_新iPhone前面板曝光:丑刘海还在,但边框窄了
- mysql大项目:新闻管理系统
- 用matlab做元胞自动机预测,元胞自动机(Cellular Automata)与城市规划及其MATLAB实现——莆田市城市发展预测...
- gabor 幅值域 matlab,组合局部多通道Gabor滤波器和ICA的人脸描述与识别
- 多目标遗传算法与优化的关系
- matlab模拟调制过程,模拟信号的调制方式有哪三种?调制与解调是个啥过程
- mac mysql-share_mac下安装mysql
- python pymysql用法_Python使用pymysql小技巧
- Java 算法 数列
- html5 retina 1像素,走向视网膜(Retina)的Web时代