python求向量函数的雅可比矩阵_使用python,pytorch求海森Hessian矩阵
考虑一个函数$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矩阵相关推荐
- python求向量函数的雅可比矩阵_在python Numpy中求向量和矩阵的范数实例
np.linalg.norm(求范数):linalg=linear(线性)+algebra(代数),norm则表示范数. 函数参数 x_norm=np.linalg.norm(x, ord=None, ...
- python求向量函数的雅可比矩阵_[数学] 向量函数的雅可比矩阵与链式法则
复习一下我的数学知识T_T 1. 回顾高等数学:多元数量函数的梯度 回想高等数学中常见的多元数量函数$f:\mathbb{R}^{n}\rightarrow \mathbb{R}^{1}$,我们可以把 ...
- python求n的阶乘并输出身份信息_python编程求n的阶乘_使用Python编程的阶乘
python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...
- python编程求n的阶乘_使用Python编程的阶乘
python编程求n的阶乘 Before we start implementing factorial using Python, let us first discuss what factori ...
- python求5的阶乘_用python分享5的阶乘 (咋办)用python计算阶乘
(急)用python计算阶乘 小编需要用python列出一个阶乘的表. 小编不太清楚python的阶乘公式 以阶乘reduce为逐次操作list里的每项,接收的参数为 2个,最后返回的为一个结果 &g ...
- python做审计底稿视频_最新Python教学视频,每天自学俩小时,让你offer拿到手软...
2020最新Python零基础到精通资料教材,干货分享,新基础Python教材,看这里,这里有你想要的所有资源哦,最强笔记,教你怎么入门提升!让你对自己更加有信心,重点是资料都是免费的,免费!!! 如 ...
- python输出一个月日历表_关于python一个月总结
今天是6月16了,我在上个月19号的时候敲下了人生中的第一行python的hello world代码.碰巧今天周末,明天又开始忙碌的上(mo)班(yu).趁着现在对这个月的学习做一个总结,也是理清思路 ...
- python文本结构化处理_在Python中标记非结构化文本数据
python文本结构化处理 Labelled data has been a crucial demand for supervised machine learning leading to a n ...
- python绘制繁花曲线代码_使用python和pygame绘制繁花曲线的方法
前段时间看了一期<最强大脑>,里面各种繁花曲线组合成了非常美丽的图形,一时心血来潮,想尝试自己用代码绘制繁花曲线,想怎么组合就怎么组合. 真实的繁花曲线使用一种称为繁花曲线规的小玩意绘制, ...
最新文章
- SaaS颠覆传统软件到底是不是个伪命题?
- CPU方案简介 RK3308 - 智能音响
- 编程语言之常用的编译器和软件的版本规范
- c# list 容量_C#中数组、ArrayList和List三者的区别 转
- 开发人员需要了解的有关xPaaS的一切
- Windows中获取和设置系统日期时间的C程序
- 使用reflux进行react组件之间的通信
- Another FTP daemon is already running?
- 最长回文字串--动态规划
- vs2010专业板产品密钥
- Schizophrenia Bulletin:未用药精神分裂症患者的纹状体多巴胺与奖赏预测误差信号
- python打开csv文件绘制折线图_Python程序分析CSV文件并绘制趋势图,python,csv
- 域控制器组策略:部署软件自动下发
- 建模学习—带你轻松认识并掌握3Dmax
- Android 第三方桌面,怎么请求Widget的android.permission.BIND_APPWIDGET
- unity中显示选择题
- html+css实战146-banner-版权区域-布局
- linux之文件系统制作及移植
- php区块链以太坊,兄弟连区块链教程以太坊源码分析CMD深入分析(一)
- Matlab论文插图绘制模板第76期—半对数刻度折线图(Semilogx和Semilogy)
热门文章
- 【报告分享】厨房料理小家电新品类市场洞察(2021)-闻道网络(附下载)
- flashcharge充电协议_iQOO 5充电评测:55W FlashCharge超快闪充加持
- 红帽、微软和 Codenvy 联合推出开源协议 LSP
- 麦克纳姆轮的速度解算
- 【编译原理】中间代码优化(一) 优化技术大观
- 骑兵变步兵?10 分钟搞明白如何在直播中去马赛克
- 基于Python实现对情感极性判断分析实验
- 亿级流量架构演进实战 | 架构演进重构消息PUSH系统 05
- keras创建自己训练代码
- atmega168p与328p_【图片】【经验分享】atmega 328p的定时器1的精确定时【arduino吧】_百度贴吧...