1. 功能介绍
对于方阵进行n阶幂运算。如果输入不止一个方阵, 则对每个方阵都进行n阶幂运算。
如果n为负数,则先对原方阵求逆矩阵, 然后进行n阶幂运算。
如果n为零则返回单位矩阵。
2. 接口描述
Python层接口
接口目录:mindspore/ops/operations/math_ops.py
class MatrixPower (Primitive):
参数 | 类型 | 输入/输出/属性 | 说明 |
---|---|---|---|
x | Tensor | 输入 | |
y | Tensor | 输出 | |
n | int | 属性 |
对应底层算子
对应底层GPU算子MatrixPower
Classify | Name | Type | Type Range | Required |
---|---|---|---|---|
Input | x | tensor | fp16, fp32, double | TRUE |
Output | y | tensor | fp16, fp32, double | TRUE |
REQUIRED_ATTR | n | int | TRUE |
对标接口参考
PyTorch接口:
https://pytorch.org/docs/1.8.1/generated/torch.matrix_power.html?highlight=matrix#torch.matrix_power
3. 异常处理
4. 算子反向
正向:
y = x^n
反向:
dx = grad * (n*x^(n-1))
可参考:
grad * n * P.MatrixPower(x, n - 1)
Please add labels (comp or sig), also you can visit https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md to find more.
为了让代码尽快被审核,请您为Pull Request打上 组件(comp)或兴趣组(sig) 标签,打上标签的PR可以直接推送给责任人进行审核。
更多的标签可以查看https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md
以组件相关代码提交为例,如果你提交的是data组件代码,你可以这样评论:
//comp/data
当然你也可以邀请data SIG组来审核代码,可以这样写:
//sig/data
另外你还可以给这个PR标记类型,例如是bugfix或者是特性需求:
//kind/bug or //kind/feature
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
负责学生:张欣怡
说明:当n的绝对值比较大,因为浮点数累乘会导致误差累积,使进度不达标,属于正常情况。
说明:n为负时,调用了mindspore.ops.MatrixInverse算子进行求逆,因为求逆算子与标杆存在误差,会引入误差导致精度不达标。
登录 后才可以发表评论