赞
踩
问题描述:
【功能模块】
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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。