海森矩阵
高阶微分操作
海森矩阵
海森矩阵(Hessian Matrix)算子用于计算函数的海森矩阵。
Hessian对象被创建后,可以采用部分惰性求值方法进行计算,可以对其进行多维索引来获取整个海森矩阵或子矩阵,此时会进行实际求值计算并返回结果。同时在实际求值的过程中,会对计算完毕的子矩阵进行缓存,以避免在后续的索引过程中产生重复计算。
参数列表
| 参数 | 类型 | 参数描述 |
|---|---|---|
| 待微分函数 | 输入 | 要计算海森矩阵的函数。此函数的输入参数应是数组、标量。它应返回数组或标量 |
| 输入张量 | 输入 | 表示自变量,待微分函数的输入 |
| 是否有附加数据 | 输入 | 布尔变量,指待微分函数是否返回一个元组,其中第一个元素是数学函数的输出,第二个元素是附加数据。此变量为真表示待微分函数返回的是这样的元组结构,它会正确计算海森矩阵。默认情况下此变量为假,即假设函数只返回一个纯数值作为输出 |
| 是否是全纯函数 | 输入 | 布尔变量,指示待微分函数是否是全纯函数 |
| 海森矩阵 | 输出 | 表示计算结果 |
函数返回值
- 没有错误:操作成功。
- 对象未初始化:表示输入张量没有初始化。
- 类型不匹配:表示参数的数据类型不一致。
- 分配失败:表张量分配空间不足。
- 内部错误:表示内部调用出错。
参考来源:团体标准——《人工智能 科学计算 共性算子功能要求》——章节7.3.1.2
硬件验证状态
昇腾 NPU 1.8ms鲲鹏 CPU 2.6ms海光 CPU 2.1ms昆仑 XPU 2.4ms海光 DCU 2.3ms飞腾 CPU 3.1ms燧原 XPU 2.7ms沐曦 GPU 2.5ms
