当前位置:   article > 正文

pytorch自定义算子怎么用mindspore复现_pytorch msp

pytorch msp

问题描述:

【功能模块】

mindspore 1.6

【操作步骤&问题现象】

1、我想用msp复现脉冲网络(pytorch写的)的自定义算子,但是在官网上没有找到相应的教程,请问能提供一下如何转换的网页链接吗

2、我根据一篇csdn的博客尝试用msp写了一下,但测试后发现根本不对,希望能指正我的问题,感谢!

【截图信息】

pytorch版:

 mindspore版

 解答:

方法1:

MindSpore自定义算子开发教程:

https://mindspore.cn/docs/programming_guide/zh-CN/r1.6/custom_operator.html

以上述教程中的CPU算子开发为例,假如要自定义一个Transpose算子,那么需要在你的mindspore代码(r1.6)中加入以下内容:

① 注册算子原语,即定义算子的对外接口名称(Transpose),这个文件在https://gitee.com/mindspore/mindspore/blob/r1.6/mindspore/python/mindspore/ops/operations/array_ops.py 737行;

② 实现算子计算流程,https://gitee.com/mindspore/mindspore/blob/r1.6/mindspore/ccsrc/backend/kernel_compiler/cpu/transpose_cpu_kernel.cc;

③ 把实现的计算过程注册给算子原语(主要是这一句:MS_REG_CPU_KERNEL(Transpose, KernelAttr(), TransposeCPUFwdKernel);),https://gitee.com/mindspore/mindspore/blob/r1.6/mindspore/ccsrc/backend/kernel_compiler/cpu/transpose_cpu_kernel.h;

④ 定义算子的反向过程,https://gitee.com/mindspore/mindspore/blob/r1.6/mindspore/python/mindspore/ops/_grad/grad_array_ops.py 355行。

最后再编译一个新的whl包,就可以调用自定义的算子了。

方法2:Pynative模式下,可以自定义bprop()函数

https://mindspore.cn/docs/programming_guide/zh-CN/r1.6/debug_in_pynative_mode.html?highlight=bprop

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/154192?site
推荐阅读
相关标签
  

闽ICP备14008679号