[发明专利]代码生成方法、装置、设备及存储介质在审
申请号: | 202110221192.9 | 申请日: | 2021-02-26 |
公开(公告)号: | CN112947908A | 公开(公告)日: | 2021-06-11 |
发明(设计)人: | 李秀红;肖权伦;颜深根 | 申请(专利权)人: | 上海商汤智能科技有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 苑晨浩 |
地址: | 200233 上海市徐*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 生成 方法 装置 设备 存储 介质 | ||
本发明涉及一种代码生成方法、装置、设备及存储介质,所述代码生成方法包括:获取初始运算表达式,其中,所述初始运算表达式包括第一张量的索引运算;针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式;根据所述目标算术表达式生成代码,其中,所述索引运算的表达式的代码,按照所述索引运算的索引信息对所述第一张量进行标注得到。因此可以针对包含索引运算的张量运算生成代码,且在代码运行时减少了对索引运算结果的读写操作,进而节省了针对索引运算结果的存储空间。
技术领域
本发明涉及代码生成技术领域,尤其涉及一种代码生成方法、装置、设备及存储介质。
背景技术
随着人工智能技术的发展,图像等对象可以在多方面进行自动处理,降低了人工成本,提高了效率和准确率。这些对象的特征多会使用张量进行表示,因此特征的处理可以用张量的运算过程表示,但是相关技术中,针对张量处理的运算过程,尤其是包括索引运算的运算过程,无法自动生成代码。
发明内容
本发明提供一种代码生成方法、装置、设备及存储介质,以解决相关技术中的下述技术问题:针对张量处理的运算过程,尤其是包括索引运算的运算过程,无法自动生成代码。
根据本发明实施例的第一方面,提供一种代码生成方法,包括:
获取初始运算表达式,其中,所述初始运算表达式包括第一张量的索引运算;
针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式;
根据所述目标算术表达式生成代码,其中,所述索引运算的表达式的代码,按照所述索引运算的索引信息对所述第一张量进行标注得到。
结合本公开提供的任一实施方式,所述针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式,包括:
根据所述初始运算表达式,生成运算图;
根据所述运算图,生成所述目标算术表达式。
结合本公开提供的任一实施方式,根据所述初始运算表达式,生成运算图,包括:
响应于所述初始运算表达式中算术运算的输入和输出中的一个为所述第一张量的索引运算的结果,另一个为第二张量,生成表示所述第一张量的第一节点、表示所述第二张量的第二节点以及表示所述索引运算的索引信息和所述算术运算的算术信息的运算边;
响应于所述初始运算表达式中算术运算的输入和输出中的一个为所述第一张量,另一个为第三张量,生成表示所述第一张量第一节点、表示所述第三张量的第三节点以及表示所述算术运算的算术信息的算术边。
结合本公开提供的任一实施方式,还包括:
响应于所述第一节点和所述第二节点间具有两条运算边,且所述两条运算边所表示的算术信息的方向相反,根据所述第一张量和一条运算边表示的索引信息确定第四张量;
删除所述一条运算边,并生成表示所述第四张量的第四节点、表示所述一条第一边所表示的算术信息的算术边以及连接所述第一节点和所述第四节点的跳边。
结合本公开提供的任一实施方式,所述根据所述运算图,生成目标算术表达式,包括:
根据所述运算图的每条运算边及所述运算边两端的节点,生成目标算术表达子式,和/或,根据所述运算图的每条算术边及所述算术边两端的节点,生成目标算术表达子式。
结合本公开提供的任一实施方式,所述按照所述索引运算的索引信息对所述第一张量进行标注,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海商汤智能科技有限公司,未经上海商汤智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110221192.9/2.html,转载请声明来源钻瓜专利网。