对象类型的处理方法、装置、电子设备及存储介质与流程

文档序号:34820493发布日期:2023-07-20 01:06阅读:20来源:国知局
对象类型的处理方法、装置、电子设备及存储介质与流程

本公开涉及计算机,具体涉及深度学习以及软件发开等,尤其涉及一种对象类型的处理方法、装置、电子设备及存储介质。


背景技术:

1、深度学习框架中,通常采用python语言进行开发,python语言是一门动态语言,不需要指定对象类型信息。可是自从python增强建议(python enhancement proposals;pep)406提出之后,python3.5引入了类型提示功能,开发者只需要在源码中添加类型注释即可添加类型提示功能。不同于其他静态语言,python代码中的类型注释并不影响解释器的运行,反而将其作为注释的一种而忽略掉,从而遵循动态语言的本质。

2、在深度学习的开发中,开发者在编写深度学习代码时不可避免的频繁对一些对象调用方法和属性。但是有一些类型的对象生成情况较为复杂,无法获取到这些对象的类型,进而也无法在python代码中注释这些对象的类型,以进行提示。例如,有些对象的动态图和静态图下的表示不一致,而且这些对象都是通过pybind11在c++端实现的。在使用这些对象时,由于静态类型的分析工具无法通过分析python源码的方式,来获取对象的类型信息,导致无法从深度学习的集成开发环境(integrated development environment;ide)/编辑器(editor)中获取这些对象的类型。


技术实现思路

1、本公开提供了一种对象类型的处理方法、装置、电子设备及存储介质。

2、根据本公开的一方面,提供了一种对象类型的处理方法,包括:

3、确定集成开发环境中业务的代码处于非运行状态;

4、基于对所述业务的代码对应的配置文件以及源代码的解析,获取所述业务的代码中指定对象的类型信息;

5、在所述业务的代码中注释所述指定对象的类型信息。

6、根据本公开的另一方面,提供了一种对象类型的处理装置,包括:

7、确定模块,用于确定集成开发环境中业务的代码处于非运行状态;

8、类型获取模块,用于基于对所述业务的代码对应的配置文件以及源代码的解析,获取所述业务的代码中指定对象的类型信息;

9、注释模块,在所述业务的代码中注释所述指定对象的类型信息。

10、根据本公开的再一方面,提供了一种电子设备,包括:

11、至少一个处理器;以及

12、与所述至少一个处理器通信连接的存储器;其中,

13、所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方面和任一可能的实现方式的方法。

14、根据本公开的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行如上所述的方面和任一可能的实现方式的方法。

15、根据本公开的再另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上所述的方面和任一可能的实现方式的方法。

16、根据本公开的技术,能够有效地提高业务代码的开发效率。

17、应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。



技术特征:

1.一种对象类型的处理方法,包括:

2.根据权利要求1所述的方法,其中,基于对所述业务的代码对应的配置文件以及源代码的解析,获取所述业务的代码中指定对象的类型信息,包括:

3.根据权利要求2所述的方法,其中,调用预先配置的代理模块,从所述代理模块对所述业务的代码对应的所述配置文件以及所述源代码的解析中,获取所述指定对象的类型信息之前,所述方法还包括:

4.根据权利要求2所述的方法,其中,所述配置文件包括算子yaml文件,所述源代码包括c++源码,所述指定对象包括张量对象。

5.根据权利要求1所述的方法,其中,确定集成开发环境中业务的代码处于非运行状态,包括:

6.根据权利要求5所述的方法,其中,通过检测标识程序运行状态的预设变量的值,确定所述业务的代码处于非运行状态,包括:

7.根据权利要求1-6中任一所述的方法,其中,在所述业务的代码中注释所述指定对象的类型信息,包括:

8.一种对象类型的处理装置,包括:

9.根据权利要求8所述的装置,其中,所述类型获取模块,用于:

10.根据权利要求9所述的装置,其中,所述装置还包括:

11.根据权利要求9所述的装置,其中,所述配置文件包括算子yaml文件,所述源代码包括c++源码,所述指定对象包括张量对象。

12.根据权利要求8所述的装置,其中,所述确定模块,用于:

13.根据权利要求12所述的装置,其中,所述确定模块,用于:

14.根据权利要求8-13中任一所述的装置,其中,所述注释模块,用于:

15.一种电子设备,包括:

16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。

17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。


技术总结
本公开提供了一种对象类型的处理方法、装置、电子设备及存储介质,涉深度学习以及软件发开等技术领域。具体实现方案包括:确定集成开发环境中业务的代码处于非运行状态;基于对所述业务的代码对应的配置文件以及源代码的解析,获取所述业务的代码中指定对象的类型信息;在所述业务的代码中注释所述指定对象的类型信息。本公开的技术,能够有效地提高业务代码的开发效率。

技术研发人员:吴京京,骆涛,徐晓健,孔嘉明,詹荣瑞
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1