AICPU算子接入
1. 功能介绍
LayerNormGrad算子的反向,未发现对标算子。LayerNorm算子是对Channel方向做归一化。
2. 接口描述
Python层接口
接口目录:mindspore/ops/operations/_grad_ops.py
class LayerNormGradGrad (Primitive):
参数 | 类型 | 输入/输出/属性 | 说明 |
---|---|---|---|
x | Tensor | 输入 | LayerNorm算子的输入x |
dy | Tensor | 输入 | LayerNorm算子的反传梯度值 |
variance | Tensor | 输入 | LayerNorm算子的输出,x的方差 |
mean | Tensor | 输入 | LayerNorm算子的输出,x的均值 |
gamma | Tensor | 输入 | LayerNorm算子的输入gamm |
d_dx | Tensor | 输入 | LayerNormGrad的输出dx的反向梯度 |
d_dg | Tensor | 输入 | LayerNormGrad的输出dg的反向梯度 |
d_db | Tensor | 输入 | LayerNormGrad的输出db的反向梯度 |
sopd_dy | Tensor | 输出 | x的梯度输出 |
sopd_mean | Tensor | 输出 | dy的梯度输出 |
sopd_gamma | Tensor | 输出 | Gamma的梯度输出 |
对应底层算子
对应底层AICPU算子LayerNormGradGrad
Classify | Name | Type | Type Range | Required | Format |
---|---|---|---|---|---|
INPUT | x | tensor | fp16,fp32 | TRUE | |
INPUT | dy | tensor | fp16,fp32 | TRUE | |
INPUT | variance | tensor | fp16,fp32 | TRUE | |
INPUT | mean | tensor | fp16,fp32 | TRUE | |
INPUT | gamma | tensor | fp16,fp32 | TRUE | |
INPUT | d_dx | tensor | fp16,fp32 | TRUE | |
INPUT | d_dg | tensor | fp16,fp32 | TRUE | |
INPUT | d_db | tensor | fp16,fp32 | TRUE | |
OUTPUT | sopd_x | tensor | fp16,fp32 | TRUE | |
OUTPUT | sopd_dy | tensor | fp16,fp32 | TRUE | |
OUTPUT | sopd_gamma | tensor | fp16,fp32 | TRUE |
标杆接口参考
3. 异常处理
4. 算子反向
无反向
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.
为了让问题更快得到响应,请您为该issue打上**组件(comp)或兴趣组(sig)**标签,打上标签的问题可以直接推送给责任人进行处理。更多的标签可以查看 https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md"
以组件问题为例,如果你发现问题是data组件造成的,你可以这样评论:
//comp/data
当然你也可以向data SIG组求助,可以这样写:
//comp/data
//sig/data
如果是一个简单的问题,你可以留给刚进入社区的小伙伴来回答,这时候你可以这样写:
//good-first-issue
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
hello, @hedongdong , Has this problem been resolved? If it is in progress, please change the status to WIP. If the issue was solved, please close this issue, thanks!
你好, @hedongdong , 这个问题是否已经解决了呢? 如果正在进行中,请把issue状态设置为WIP;如果问题已解决,请关闭这个issue, 谢谢!
已完成整改,整改内容如下
1.begin_norm_axis 和 begin_params_axis 为库上算子原有的参数,AICPU&CPU实际未使用,实际开发的接口见 https://e.gitee.com/mind_spore/dashboard?issue=I40FJI
2.对inputs参数中的d_dx、d_dg、d_db已进行进一步阐述
3.已改为 If the 8 inputs don't have the same dtype. 要求8个输入数据dtype相同
4.begin_norm_axis 用于计算 LayerNorm 算子的输入"normalized_shape",在pytorch forward中需要用到,因此须在测试网络中使用;AICPU&CPU实际未使用。
5、根据要求 https://gitee.com/david-he91/mindspore/wikis/MindSpore%E7%AE%97%E5%AD%90%E4%BC%97%E6%99%BA/Ascend%E8%AE%A1%E7%AE%97%E7%AE%97%E5%AD%90/Ascend%E8%AE%A1%E7%AE%97%E7%AE%97%E5%AD%90%E6%8E%A5%E5%85%A5%E6%8C%87%E5%8D%97/04.%20%E7%AE%97%E5%AD%90%E5%89%8D%E7%AB%AF%E5%AE%9A%E4%B9%89#%E7%BC%96%E5%86%99%E6%8E%A5%E5%8F%A3%E6%B3%A8%E9%87%8A 反向算子不需要samples,因此暂不添加
6.已删除所有disturb,删除str类型的输入,为每个错误情况单独实现了forward函数。
7.variance 和 mean 为 x 的方差和均值,此处按照算子IR开放输入接口,IR 见 https://e.gitee.com/mind_spore/dashboard?issue=I40FJI
实际使用时,layernormgradgrad为反向算子,不需要用户手动调用。
测试时,为保证输入的variance、mean与输入的x相符,因此在网络中自动计算后输入,而不采用随机值。
同学你好, 交付件还存在一个问题,请排查重新提交一下哈:
登录 后才可以发表评论