【技术实现步骤摘要】
代码生成方法、装置、设备及存储介质
本专利技术涉及代码生成
,尤其涉及一种代码生成方法、装置、设备及存储介质。
技术介绍
随着人工智能技术的发展,图像等对象可以在多方面进行自动处理,降低了人工成本,提高了效率和准确率。这些对象的特征多会使用张量进行表示,因此特征的处理可以用张量的运算过程表示,但是相关技术中,针对张量处理的运算过程,尤其是包括索引运算的运算过程,无法自动生成代码。
技术实现思路
本专利技术提供一种代码生成方法、装置、设备及存储介质,以解决相关技术中的下述技术问题:针对张量处理的运算过程,尤其是包括索引运算的运算过程,无法自动生成代码。根据本专利技术实施例的第一方面,提供一种代码生成方法,包括:获取初始运算表达式,其中,所述初始运算表达式包括第一张量的索引运算;针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式;根据所述目标算术表达式生成代码,其中,所述索引运算的表达式的代码,按照所述索引运算的索引信息对所述第一张量进行标注得到。结合本公开提供的任一实施方式,所述针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式,包括:根据所述初始运算表达式,生成运算图;根据所述运算图,生成所述目标算术表达式。结合本公开提供的任一实施方式,根据所述初始运 ...
【技术保护点】
1.一种代码生成方法,其特征在于,包括:/n获取初始运算表达式,其中,所述初始运算表达式包括第一张量的索引运算;/n针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式;/n根据所述目标算术表达式生成代码,其中,所述索引运算的表达式的代码,按照所述索引运算的索引信息对所述第一张量进行标注得到。/n
【技术特征摘要】
1.一种代码生成方法,其特征在于,包括:
获取初始运算表达式,其中,所述初始运算表达式包括第一张量的索引运算;
针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式;
根据所述目标算术表达式生成代码,其中,所述索引运算的表达式的代码,按照所述索引运算的索引信息对所述第一张量进行标注得到。
2.根据权利要求1所述的代码生成方法,其特征在于,所述针对所述初始运算表达式中关于所述索引运算的结果的算术运算,通过以所述索引运算的表达式作为输入或输出,将所述初始运算表达式转化为目标算术表达式,包括:
根据所述初始运算表达式,生成运算图;
根据所述运算图,生成所述目标算术表达式。
3.根据权利要求2所述的代码生成方法,其特征在于,根据所述初始运算表达式,生成运算图,包括:
响应于所述初始运算表达式中算术运算的输入和输出中的一个为所述第一张量的索引运算的结果,另一个为第二张量,生成表示所述第一张量的第一节点、表示所述第二张量的第二节点以及表示所述索引运算的索引信息和所述算术运算的算术信息的运算边;
响应于所述初始运算表达式中算术运算的输入和输出中的一个为所述第一张量,另一个为第三张量,生成表示所述第一张量第一节点、表示所述第三张量的第三节点以及表示所述算术运算的算术信息的算术边。
4.根据权利要求3所述的代码生成方法,其特征在于,还包括:
响应于所述第一节点和所述第二节点间具有两条运算边,且所述两条运算边所表示的算术信息的方向相反,根据所述第一张量和一条运算边表示的索引信息确定第四张量;
删除所述一条运算边,并生成表示所述第四张量的第四节点、表示所述一条第一边所表示的算术信息的算术边以及连接所述第一节点和所述第四节点的跳边。
5.根据权利要求2至4任一项所述的代码生成方法,其特征在于,所述根据所述运算图,生成目标算术表达式,包括:
根据所述运算图的每条运算边及所述运算边两端的节点,生成目标算术表达子式,和/或,根据所述运算图的每条算术边及所述算术边两端的节点,生成目标算术表达子式。
6.根据权利要求1至5任一项所述的代码生成方法,其特征在于,所述按照所述索引运算的索引信息对所述第一张量进行标注,包括:
根据所述索引信息确定所述索引运算的结果的维度信息、偏置信息和步长信息,其中,所述维度信息包括各个维度的维度内容,所述偏置信息表征首个张量元素在所述张量中的位置,所述步长信息包括各个维度的步长内容,所述步长内容表征对应维度的张量元素的循环周期;
使用所述维度信息、所述偏置信息和所述步长信息标注所述第一张量。
7.根据权利要求6所述的代码生成方法,其特征在于,当所述索引信息中的第一维度的索引元素为整数时,所述根据所述索引信息确定所述索引运算的结果的维度信息,包括:
从原始维度信息中删除所述第一维度的维度内容,以得到所述索引运算的结果的维度信息,其中,所述原始维度信息为所述索引运算所针对的张量的维度信息。
8.根据权利要求6所述的代码生成方法,其特征在于,当所述索引信息中的第一维度的索引元素为整数时,所述根据所述索引信息确定所述索引运算的结果的偏置信息,包括:
根据原始偏置信息、所述整数和所述原始步长信息中的第一维度的步长内容,确定所述索引运算的结果的偏置信息,其中,所述原始偏置信息为所述索引运算所针对的张量的偏置信息,所述原始步长信息为所述索引运算所针对的张量的步长信息。
9.根据权利要求6所述的代码生成方法,其...
【专利技术属性】
技术研发人员:李秀红,肖权伦,颜深根,
申请(专利权)人:上海商汤智能科技有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。