考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下:

考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其中b^T=[1,3,5], A在代码中可读,可以自定义$$

求该函数在x = [0,0,0]处海森矩阵值的python代码如下:

本代码需要用到torch.autograd包中的核心函数torch.autograd.grad。相邻随笔中有详细参考解析。大致原理是人工求导并保留了计算图,所以求二阶导很方便。如果想求解析形式的海森矩阵或许matlab中有相关的包能实现。

import torch

# 定义函数

x = torch.tensor([0., 0, 0], requires_grad=True)

b = torch.tensor([1., 3, 5])

A = torch.tensor([[-5, -3, -0.5], [-3, -2, 0], [-0.5, 0, -0.5]])

y = b@x + 0.5*x@A@x

# 计算一阶导数,因为我们需要继续计算二阶导数,所以创建并保留计算图

grad = torch.autograd.grad(y, x, retain_graph=True, create_graph=True)

# 定义Print数组,为输出和进一步利用Hessian矩阵作准备

Print = torch.tensor([])

for anygrad in grad[0]: # torch.autograd.grad返回的是元组

Print = torch.cat((Print, torch.autograd.grad(anygrad, x, retain_graph=True)[0]))

print(Print.view(x.size()[0], -1))

输出结果如下:

python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵相关推荐

  1. python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例

    np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=np.linalg.norm(x, ord=None, ...

  2. python求向量函数的雅可比矩阵_[数学] 向量函数的雅可比矩阵与链式法则

    复习一下我的数学知识T_T 1. 回顾高等数学:多元数量函数的梯度 回想高等数学中常见的多元数量函数$f:\mathbb{R}^{n}\rightarrow \mathbb{R}^{1}$,我们可以把 ...

  3. python求n的阶乘并输出身份信息_python编程求n的阶乘_使用Python编程的阶乘

    python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...

  4. python编程求n的阶乘_使用Python编程的阶乘

    python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...

  5. python求5的阶乘_用python分享5的阶乘 (咋办)用python计算阶乘

    (急)用python计算阶乘 小编需要用python列出一个阶乘的表. 小编不太清楚python的阶乘公式 以阶乘reduce为逐次操作list里的每项,接收的参数为 2个,最后返回的为一个结果 &g ...

  6. python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...

    2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...

  7. python输出一个月日历表_关于python一个月总结

    今天是6月16了,我在上个月19号的时候敲下了人生中的第一行python的hello world代码.碰巧今天周末,明天又开始忙碌的上(mo)班(yu).趁着现在对这个月的学习做一个总结,也是理清思路 ...

  8. python文本结构化处理_在Python中标记非结构化文本数据

    python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...

  9. python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法

    前段时间看了一期<最强大脑>,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制, ...

最新文章

  1. SaaS颠覆传统软件到底是不是个伪命题?
  2. CPU方案简介 RK3308 - 智能音响
  3. 编程语言之常用的编译器和软件的版本规范
  4. c# list 容量_C#中数组、ArrayList和List三者的区别 转
  5. 开发人员需要了解的有关xPaaS的一切
  6. Windows中获取和设置系统日期时间的C程序
  7. 使用reflux进行react组件之间的通信
  8. Another FTP daemon is already running?
  9. 最长回文字串--动态规划
  10. vs2010专业板产品密钥
  11. Schizophrenia Bulletin:未用药精神分裂症患者的纹状体多巴胺与奖赏预测误差信号
  12. python打开csv文件绘制折线图_Python程序分析CSV文件并绘制趋势图,python,csv
  13. 域控制器组策略:部署软件自动下发
  14. 建模学习—带你轻松认识并掌握3Dmax
  15. Android 第三方桌面,怎么请求Widget的android.permission.BIND_APPWIDGET
  16. unity中显示选择题
  17. html+css实战146-banner-版权区域-布局
  18. linux之文件系统制作及移植
  19. php区块链以太坊,兄弟连区块链教程以太坊源码分析CMD深入分析(一)
  20. Matlab论文插图绘制模板第76期—半对数刻度折线图(Semilogx和Semilogy)

热门文章

  1. 【报告分享】厨房料理小家电新品类市场洞察(2021)-闻道网络(附下载)
  2. flashcharge充电协议_iQOO 5充电评测:55W FlashCharge超快闪充加持
  3. 红帽、微软和 Codenvy 联合推出开源协议 LSP
  4. 麦克纳姆轮的速度解算
  5. 【编译原理】中间代码优化(一) 优化技术大观
  6. 骑兵变步兵?10 分钟搞明白如何在直播中去马赛克
  7. 基于Python实现对情感极性判断分析实验
  8. 亿级流量架构演进实战 | 架构演进重构消息PUSH系统 05
  9. keras创建自己训练代码
  10. atmega168p与328p_【图片】【经验分享】atmega 328p的定时器1的精确定时【arduino吧】_百度贴吧...