建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
直达楼层
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

采纳成功

您已采纳当前回复为最佳回复

DrDr

发帖: 16粉丝: 0

发消息 + 关注

更新于2021年05月02日 14:56:31 108 4
直达本楼层的链接
楼主
显示全部楼层
[问题求助] 【自定义算子开发】自定义算子如何指定输出的ori_shape和ori_format?

软件版本:mindspore-ascend 1.1.1

我们需要实现一个自定义算子用于矩阵乘:c = cus_matmul(a, b)

其中a和b的数据排布格式都是nd,而c是frac_z。想问一下我们要如何指定c的ori_shape?如果只是指定了shape,但不指定ori_shape的话仍然有问题,例如shape=(49,4,16,16)format=frac_z的张量,它的ori_shape可能是(64,3,7,7)、(64,5,7,7)等多种可能,不指定ori_shape可能会影响后续计算。我们知道可以用如下方式指定输出的shape:

class CusMatMul(PrimitiveWithInfer):
    @prim_attr_register
    def __init__(self):
        from cus_matmul_impl import CusMatMul

    def infer_shape(selfdata1_shapedata2_shape):
        return [49, 4, 16, 16]

    def infer_dtype(selfdata1_dtypedata2_dtype):
        return mstype.float16

ori_shape是否可以用类似于这样的方式来指定:
def infer_ori_shape(selfdata1_shapedata2_shape):
        return [64, 3, 7, 7]
另外,输出的format可以通过TBERegOp中的dtype_format来指定,那么输出的ori_format要怎么指定呢?
举报
分享

分享文章到朋友圈

分享文章到微博

采纳成功

您已采纳当前回复为最佳回复

wli10

发帖: 0粉丝: 0

发消息 + 关注

发表于2021年05月02日 21:42:18
直达本楼层的链接
沙发
显示全部楼层

你好,可以在算子原型inferShape里指定输出tensor的ori_shape和ori_format,接口具体使用方法可参考

https://support.huawei.com/enterprise/zh/doc/EDOC1100191916/dd8920a1

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

DrDr

发帖: 16粉丝: 0

发消息 + 关注

发表于2021年05月03日 00:19:21
直达本楼层的链接
板凳
显示全部楼层

https://support.huawei.com/enterprise/zh/doc/EDOC1100191916/dd8920a1

这个文档是介绍把自定义算子部署到算子库里,用于tensorflow之类的第三方框架?

但我用的是Mindspore,这个框架应该是需要在python中定义infer_shape?文档:https://www.mindspore.cn/tutorial/training/zh-CN/r1.2/advanced_use/custom_operator_ascend.html   我看到内置的MatMul算子就是这样做的:

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

chengxiaoli

发帖: 193粉丝: 27

级别 : 版主,版块专家

发消息 + 关注

发表于2021年05月03日 08:18:41
直达本楼层的链接
地板
显示全部楼层

用户您好,欢迎使用MindSpore,问题已经收到,会尽快处理答复,请耐心等待一下

点赞 评论 引用 举报

采纳成功

您已采纳当前回复为最佳回复

DrDr

发帖: 16粉丝: 0

发消息 + 关注

发表于2021年05月03日 16:56:53
直达本楼层的链接
5#
显示全部楼层

是不是我对infer_shape的理解有问题?infer_shape的返回值是输出张量的shape还是ori_shape?

点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册

邀请回答
您可以邀请3位专家

结贴

您对问题的回复是否满意?
满意度
非常满意 满意 一般 不满意
我要反馈
0/200