[发明专利]代码转换方法、装置、设备以及存储介质有效
申请号: | 202110042472.3 | 申请日: | 2021-01-13 |
公开(公告)号: | CN112764755B | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | 张留杰;蓝翔;郑辉煌;刘红雨;李雅美;陈威行 | 申请(专利权)人: | 北京百度网讯科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06N20/00 |
代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 韩海花 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 转换 方法 装置 设备 以及 存储 介质 | ||
本申请公开了一种代码转换方法、装置、设备以及存储介质,涉及深度学习技术领域。具体实现方案为:通过获取深度学习模型在动态图模式下的源代码,根据源代码,确定深度学习模型中同一个源函数所对应的多段源代码;确定多段源代码所对应的多个类实例信息,获取源函数在静态图模式下的第一函数代码;根据第一函数代码和多个类实例信息,生成源函数在静态图模式下所对应的多段目标代码后,根据多段目标代码,确定深度学习模型在静态图模式下的目标代码。由此,通过获取源函数在静态图模式下的第一函数代码,避免了对动态图模式下的相同源代码进行重复转换的过程,有效地提高了深度学习模型的代码转换的速度。
技术领域
本申请公开了一种代码转换方法、装置、设备以及存储介质,涉及数据处理技术领域,具体涉及深度学习技术领域。
背景技术
随着深度学习技术的兴起,越来越多的深度学习框架被开源出来,各具特色。大多数的框架会支持声明式编程(静态图)和命令式编程(动态图)两种编程范式。静态图训练速度快,更易于部署推理;动态图调试方便,组网体验好,更有利于模型的快速组建。为了更好的融合动态图和静态图的优势,代码转写技术被应用到深度学习框架中,支持动态图转换到静态图。
但是,现有的将动态图转换到静态图的代码转换技术中,会对相同的函数进行多次转换,从而导致转换的效率较低。
发明内容
本申请提供了一种用于代码转换的方法、装置、设备以及存储介质。
根据本申请的一方面,提供了一种代码转换方法,包括:
获取深度学习模型在动态图模式下的源代码,并根据所述源代码,确定所述深度学习模型中同一个源函数所对应的多段源代码;
确定所述多段源代码所对应的多个类实例信息;
获取所述源函数在静态图模式下的第一函数代码;
根据所述第一函数代码和所述多个类实例信息,生成所述源函数在所述静态图模式下所对应的多段目标代码;
根据所述多段目标代码,确定所述深度学习模型在所述静态图模式下的目标代码。
可选地,所述获取所述源函数在静态图模式下的第一函数代码,包括:
查询第一预设存储位置是否存在所述源函数在静态图模式下的第一函数代码;
确定在所述第一预设存储位置查询到所述第一函数代码,则从所述第一预设存储位置中获取所述源函数在静态图模式下的第一函数代码。
可选地,所述方法还包括:
确定在所述第一预设存储位置未查询到所述第一函数代码,则获取所述源函数在所述动态图模式下的第一中间表示;
根据动态图模式与静态图模式之间的中间表示转换规则,对所述第一中间表示进行转换,以得到所述源函数在静态图模式下的第二中间表示;
根据所述第二中间表示,确定所述源函数在所述静态图模式下的第一函数代码。
可选地,所述获取所述源函数在所述动态图模式下的第一中间表示,包括:
对所述多段源代码中的任意一段源代码进行解析,以得到与实例无关的第二函数代码;
将所述第二函数代码转换为所述第一中间表示。
可选地,所述获取所述源函数在静态图模式下的第一函数代码之前,所述方法还包括:
确定第二预设存储位置中不存在每段源代码在所述静态图模式对应的第一代码。
可选地,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司,未经北京百度网讯科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110042472.3/2.html,转载请声明来源钻瓜专利网。