[发明专利]一种基于模型代码语法分析的神经网络自动生成方法在审
申请号: | 202010712775.7 | 申请日: | 2020-07-23 |
公开(公告)号: | CN111881028A | 公开(公告)日: | 2020-11-03 |
发明(设计)人: | 陈振宇;刘佳玮;曹可凡 | 申请(专利权)人: | 深圳慕智科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06N3/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市南山区粤海街道高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模型 代码 语法分析 神经网络 自动 生成 方法 | ||
一种基于模型代码语法分析的神经网络自动生成方法,根据不同框架下搭建神经网络的语法结构,抽象出语法库,并构建安全检查机制,保证代码生成程序的正确性;在此基础之上,融合相应的代码特性,还原神经网络的使用场景,提高代码生成程序的易用性。为了实现不同技术框架和网络结构下的自动生成,通过不断的迭代,从粗粒度、单一结构、个别框架实现到更细粒度、支持多种模型、不依赖具体技术框架的神经网络自动生成工具。
技术领域
本发明属于软件测试领域,特别是涉及到深度学习编译器测试。根据神经网络模型代码的构建规则,通过分析开源社区中已有网络代码的规则,实现深度神经网络的自动生成。
背景技术
硬件算力的发展和工业界内的认可使得人工智能与深度学习逐步深入到更多的领域,尤其在医疗诊断、自动驾驶、人脸识别等领域已取得了技术成就,并且已开始了产品的推广。相对而言,作为深度学习功能支撑的底层框架成为了限制其进一步发展的瓶颈。一方面,这些底层框架的可靠性尚且存疑,目前针对这些框架的测试还在如火如荼的开展当中;另一方面,由于框架本身提供了丰富且易用的API,为开发人员减少了造轮子的过程,降低了开发人员的门槛。与此同时,深度学习应用的分工越细致,不同场景之下可共用的代码也更少,而重复构建模型代码的过程也成了限制深度学习应用发展的一道坎。
从程序开发角度看,作为最常使用的系统软件之一,编译器的重要性不言而喻,对编译器的测试技术的研究一直是软件测试领域的一个重要分支。目前针对编译器的测试已实现在部分较常用的编程语言方面的研究。现有编译器测试验证工具(如SuperTest、CVSAC等)主要关注编译器对语言标准一致性的实现。Csmith是一种编译器随机差分测试工具,主要侧重于查找编译器编译中间过程的错误。 Csmith使用自定义的语法子集,随机生成测试用例。其考虑了一个最基本的语法子集,且采用硬编码方式进行实现。迄今为止,它已经在GCC和LLVM中发现了数百个错误,并帮助提高了使用最广泛的C 编译器的质量。
神经网络架构的传统方式是:遍历网络架构的参数和对应的训练,直到任务表现达到收益减少的点。但这种方法面临许多的问题。一来是架构固定的问题,大部分基于反向传播的方法训练的是网络权重,而非架构。它们只是利用神经网络权重空间中的梯度信息,而整个训练过程中的神经网络架构是固定的。因此,这样的方法并不能带来更好的网络架构。二来这些方法都需要一个漫长的提升过程,通过试错的方法搜索合适的神经网络架构非常的低效。这一问题随着网络的加深、包含数百万的参数时愈为严重。即使是最快的GPU,每尝试一种深度神经网络动辄花费数十小时。要知道,GPU目前是神经网络训练的主力。即使拥有足够的算力与研究人员,找到适合某种应用的优秀架构也要花费数年时间,例如图像领域,从AlexNet到VGG、GoogLeNet、ResNet的变革。三来是大量的冗余,这导致大部分神经网络的参数都过量了。即使是图像分类任务中最知名的网络(例如,LeNets、 AlexNet、VGG),也面临着大量的存储和计算冗余的问题。
语言或语法的习得和表演是人类的典型智力活动,并且已经提出了使用神经网络的这些过程的各种模型。
目前学术界关于深度学习框架的测试已开展了一系列工作。csmith是一项基于C语言语法实现语法库自动生成程序的工作,这项工作通过构造语法子集,辅以安全检查保证程序的可用性,目前集中在C编译器的测试。CRADLE致力于通过差分测试捕获潜在的深度学习框架下的bug,并通过change rate定位出现bug的层,然而该方法中使用到的模型是有限的。AUDEE是比较新的一项工作,通过总结常用API的参数取值范围和蜕变关系自动生成模型进行随机测试,但是自动生成的模型仅仅实现了参数级别的随机。因此,本发明基于这些已有的研究成果,通过分析神经网络构建代码语法,实现自动化的生成神经网络,并进一步可用于深度学习编译器的测试。
发明内容
本发明要解决的问题是:利用编程语言的语法结构构造C编程程序已在C编译器的测试上获
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳慕智科技有限公司,未经深圳慕智科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010712775.7/2.html,转载请声明来源钻瓜专利网。