[发明专利]一种神经网络模型混合精度方案搜索方法及系统在审
申请号: | 202211273518.3 | 申请日: | 2022-10-18 |
公开(公告)号: | CN115526299A | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 郑歆慰;吴双 | 申请(专利权)人: | 中国科学技术大学 |
主分类号: | G06N3/04 | 分类号: | G06N3/04;G06N3/08;G06K9/62 |
代理公司: | 合肥昊晟德专利代理事务所(普通合伙) 34153 | 代理人: | 何梓秋 |
地址: | 230026*** | 国省代码: | 安徽;34 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 神经网络 模型 混合 精度 方案 搜索 方法 系统 | ||
本发明公开了一种神经网络模型混合精度方案搜索方法及系统,属于神经网络模型技术领域,包括以下步骤:模型预处理;模型执行;低精度转化;模型正确性验证;混合精度神经网络模型输出。本发明基于模型预测的方式,用历史算子组合以及执行结果作为训练数据,训练误差预测模型预测低精度后的神经网络模型误差,只有通过误差预测模型预测的神经网络模型低精度方案才会实际执行,并将实际执行结果加入误差预测模型的训练数据中,这样大大减少了神经网络模型的执行次数,有效提高了搜索效率,值得被推广使用。
技术领域
本发明涉及神经网络模型技术领域,具体涉及一种神经网络模型混合精度方案搜索方法及系统。
背景技术
随着神经网络的规模增加,越来越多的降低模型尺寸的方法被提出。其中用低精度计算替代高精度计算是一种有效的方法。但由于神经网络包含各种类型的算子,而不同类型的算子对于精度的敏感性并不一致,纯低精度计算有可能会明显地降低神经网络模型的性能,甚至输出异常值。因此更为常用的是混合精度计算,即部分算子采用高精度,部分算子采用低精度。
但如何确定算子哪些采用低精度是一个亟待解决的问题。这是因为算子之间的不同组合可能导致精度的损失被成倍扩大;神经网络混合精度方案目前有大量的应用场景,但如何将一个高精度模型转为混合精度模型还没有通用的方法,现有的方法更多采用暴力搜索或启发式算法进行搜索,非常耗时或难以找到最优解,非常低效。为此,提出一种神经网络模型混合精度方案搜索方法。
发明内容
本发明所要解决的技术问题在于:如何解决采用暴力搜索或启发式算法进行搜索,存在的非常耗时或难以找到最优解,非常低效的问题,提供了一种神经网络模型混合精度方案搜索方法,通过误差预测模型避免暴力算法中每次反复执行神经网络模型来验证结果,同时通过实际执行的结果反过来提升误差预测模型的准确度,进一步减少实际执行神经网络模型的次数。
本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:
步骤一:模型预处理
将待优化的神经网络模型抽象为算子序列;
步骤二:模型执行
执行原始高精度的神经网络模型(即经过抽象处理的待优化的神经网络模型),得到期望输出;
步骤三:低精度转化
将原始高精度的神经网络模型整体转化为低精度的神经网络模型,加入待验证模型队列;
步骤四:模型正确性验证
从待验证模型队列中取一个神经网络模型进行正确性验证;
步骤五:混合精度神经网络模型输出
若神经网络模型正确性验证通过,则说明当前神经网络模型目前的低精度部分优化方案正确,然后判断通过正确性验证的神经网络模型的高精度部分是否还可以切分;若是则将其高精度部分取出进行切分,分别对每一部分保留高精度,其余部分转化为低精度(其余部分指的是除切分之后被保留高精度的剩余部分),得到多个模型,加入待验证模型队列,继续执行步骤四至五,直至神经网络模型的高精度部分无法切分,输出模型,即得到待优化神经网络模型的混合精度方案;否则,直接输出模型,即得到待优化神经网络模型的混合精度方案。
更进一步地,在所述步骤一中,待优化的神经网络模型是一个计算图模型,其中的每一个节点都是一个算子,对计算图模型进行拓扑排序后即可得到一个算子序列。
更进一步地,在所述步骤四中,对神经网络模型进行正确性验证的过程具体如下:
S41:利用误差预测模型预测神经网络模型的输出是否正确,如正确则进入步骤五,否则继续进行二次验证;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学,未经中国科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211273518.3/2.html,转载请声明来源钻瓜专利网。