网络模型量化、推理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31306080 阅读:56 留言:0更新日期:2021-12-12 21:21
本申请实施例提供了一种网络模型量化、推理方法、装置、电子设备及存储介质,涉及深度学习技术领域。方法包括:获得待量化网络模型;在沿所述待量化网络模型的数据处理流向对所述待量化网络模型进行量化的过程中,判断当前处理对象是否为量化中间层;若为是,以量化中间层参数中输出量化方式标识所指示的输出量化方式,对沿所述数据处理流向的下一网络子图进行量化;若为否,以模型推理平台支持的量化方式对该当前处理对象进行量化。由此可见,应用本申请实施例提供的方案,能够提高对量化后的模型进行模型推理时的效率。模型进行模型推理时的效率。模型进行模型推理时的效率。

【技术实现步骤摘要】
网络模型量化、推理方法、装置、电子设备及存储介质


[0001]本申请涉及深度学习
,特别是涉及一种网络模型量化、推理方法、装置、电子设备及存储介质。

技术介绍

[0002]随着深度学习技术的快速发展,网络模型的结构越来越复杂。在模型推理平台上对网络模型进行推理时,为了提高模型推理平台的推理效率,节省运算资源,通常需要对网络模型进行量化。
[0003]在对网络模型进行量化时,通常由用户设定网络模型中各个网络子图的量化方式,然后按照设定的量化方式对网络模型的各个网络子图进行量化,其中,所设定的量化方式可以是模型推理平台支持的量化方式,也可以是第三方量化方式。由于量化方式不同,经过量化后网络模型的各个网络子图所支持的数据类型可能会不相同。其中,上述网络子图包括网络模型中连续的、且需要采用相同量化方式进行量化的网络层。
[0004]对量化后的网络模型进行推理时,各个网络子图间会涉及数据交互。由于模型推理平台支持的数据类型为固定的数据类型,而量化后各个网络子图所支持的数据类型不同,因此,现有技术中,在采用上述方式对网络模型进行量化的情况下,进行模型推理时,需要将上一网络子图输出的数据送至模型推理平台中的数据转换单元,数据转换单元基于量化系数将上一网络子图所输出数据的数据类型转换为固定的数据类型,然后对转换后的数据再次进行类型转换得到下一网络子图所支持的数据类型,再将数据类型转换后的数据送至下一网络子图。例如,假设量化后的一个网络子图输出数据的位宽为4bit,该网络层的下一网络子图量化后支持的数据的位宽为8bit,固定的数据位宽为32bit,为实现数据在上述两个网络层之间交互,需要将位宽为4bit的数据送至数据转换单元,将该数据转化为32bit位宽的数据,再将32bit位宽的数据转化为8bit位宽的数据传输至下一网络子图。
[0005]可见,应用现有技术量化后得到的网络模型在进行模型推理时,需要模型推理平台的数据转换单元对网络子图间交互的数据进行类型转换,而数据转换单元位于网络模型外部,因此在进行类型转换时涉及到网络子图与外部的数据交互,而且需要将交互数据转化至固定数据类型的格式,这样的交互过程耗时较长,导致模型推理的效率较低。

技术实现思路

[0006]本申请实施例的目的在于提供一种网络模型量化、推理方法、装置、电子设备及存储介质,以提高对量化后的模型进行模型推理时的效率。具体技术方案如下:
[0007]第一方面,本申请实施例提供了一种网络模型量化方法,所述方法包括:
[0008]获得待量化网络模型,其中,所述待量化网络模型包括量化中间层,所述量化中间层分别与第一类网络子图的输入端、输出端相连接,所述量化中间层的参数包括:输入量化方式标识、输出量化方式标识、输入数据类型和输出数据类型,所述量化中间层用于:参考所述输入量化方式标识对应的输入量化方式对所述输入数据类型的输入数据进行反量化,
得到反量化数据,再按照所述输出量化方式标识对应的输出量化方式对所述反量化数据进行量化,输出所述输出数据类型的输出数据,所述第一类网络子图为:需要采用第三方量化方式进行量化的网络子图;
[0009]在沿所述待量化网络模型的数据处理流向对所述待量化网络模型进行量化的过程中,判断当前处理对象是否为量化中间层;
[0010]若为是,以量化中间层参数中输出量化方式标识所指示的输出量化方式,对沿所述数据处理流向的下一网络子图进行量化;
[0011]若为否,以模型推理平台支持的量化方式对该当前处理对象进行量化。
[0012]本申请的一个实施例中,所述获得待量化网络模型,包括:
[0013]获得原始网络模型;
[0014]检测所述原始网络模型中需要采用第三方量化方式进行量化的网络子图,作为第一类网络子图;
[0015]分别在检测到的第一类网络子图的输入端与输出端添加量化中间层,针对每一量化中间层,根据该量化中间层所连接的网络子图的量化信息,对该量化中间层的参数进行设定,得到待量化网络模型。
[0016]本申请的一个实施例中,针对每一第一类网络子图,在该第一类网络子图的输入端或输出端与一个第二类网络子图连接的情况下,一量化中间层位于:该第一类网络子图的输入端或输出端与所述一个第二类网络子图之间,其中,所述第二类网络子图为:需要采用所述模型推理平台支持的量化方式进行量化的网络子图;和/或
[0017]针对每一第一类网络子图,在该第一类网络子图的输入端或输出端与多个第二类网络子图连接的情况下,一量化中间层位于:该第一类网络子图的输入端或输出端与所述多个第二类网络子图之间。
[0018]本申请的一个实施例中,所述第一类网络子图为:需要采用所述模型推理平台不支持的量化方式进行量化的网络子图;和/或
[0019]所述第一类网络子图为:包含本地不支持进行量化的网络层的网络子图;和/或
[0020]所述第一类网络子图为:用户指定的需要采用第三方量化方式进行量化的网络子图。
[0021]本申请的一个实施例中,所述以量化中间层参数中输出量化方式标识所指示的输出量化方式,对沿所述数据处理流向的下一网络子图进行量化,包括:
[0022]识别量化中间层参数中包括的输出量化方式标识;
[0023]从用户配置的量化方式和本地支持的量化方式中,查找所识别出的输出量化方式标识对应的输出量化方式,按照查找到的输出量化方式对沿所述数据处理流向的下一网络子图进行量化。
[0024]第二方面,本申请实施例提供了一种网络模型推理方法,所述方法包括:
[0025]获得待推理网络模型,其中,所述待推理网络模型为:对待量化网络模型进行量化得到的模型,所述待量化网络模型包括量化中间层,所述量化中间层分别与第一类网络子图的输入端、输出端相连接,所述量化中间层的参数包括:输入量化方式标识、输出量化方式标识、输入数据类型和输出数据类型,所述量化中间层用于指示:按照所述输出量化方式标识对应的输出量化方式、对沿所述待量化网络模型的数据处理流向的下一网络子图进行
量化,所述第一类网络子图为:需要采用第三方量化方式进行量化的网络子图;
[0026]在基于待推理数据、沿所述数据处理流向进行推理的过程中,判断当前推理对象是否为量化中间层;
[0027]若为是,参考所述输入量化方式标识对应的输入量化方式对所述输入数据类型的输入数据进行反量化,得到反量化数据,再按照所述输出量化方式标识对应的输出量化方式对所述反量化数据进行量化,输出所述输出数据类型的输出数据,并基于所述输出数据对沿所述数据处理流向的下一网络子图进行推理。
[0028]本申请的一个实施例中,所述方法还包括:
[0029]在基于待推理数据、沿所述数据处理流向进行推理的过程中,判断当前推理对象是否为第一类网络子图;
[0030]若为是,按照用户配置的推理信息,基于所述待推理数据,对所述第一类网络子图进行推理。
[0031]第三方面,本申请实施例提本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络模型量化方法,其特征在于,所述方法包括:获得待量化网络模型,其中,所述待量化网络模型包括量化中间层,所述量化中间层分别与第一类网络子图的输入端、输出端相连接,所述量化中间层的参数包括:输入量化方式标识、输出量化方式标识、输入数据类型和输出数据类型,所述量化中间层用于:参考所述输入量化方式标识对应的输入量化方式对所述输入数据类型的输入数据进行反量化,得到反量化数据,再按照所述输出量化方式标识对应的输出量化方式对所述反量化数据进行量化,输出所述输出数据类型的输出数据,所述第一类网络子图为:需要采用第三方量化方式进行量化的网络子图;在沿所述待量化网络模型的数据处理流向对所述待量化网络模型进行量化的过程中,判断当前处理对象是否为量化中间层;若为是,以量化中间层参数中输出量化方式标识所指示的输出量化方式,对沿所述数据处理流向的下一网络子图进行量化;若为否,以模型推理平台支持的量化方式对该当前处理对象进行量化。2.根据权利要求1所述的方法,其特征在于,所述获得待量化网络模型,包括:获得原始网络模型;检测所述原始网络模型中需要采用第三方量化方式进行量化的网络子图,作为第一类网络子图;分别在检测到的第一类网络子图的输入端与输出端添加量化中间层,针对每一量化中间层,根据该量化中间层所连接的网络子图的量化信息,对该量化中间层的参数进行设定,得到待量化网络模型。3.根据权利要求1所述的方法,其特征在于,针对每一第一类网络子图,在该第一类网络子图的输入端或输出端与一个第二类网络子图连接的情况下,一量化中间层位于:该第一类网络子图的输入端或输出端与所述一个第二类网络子图之间,其中,所述第二类网络子图为:需要采用所述模型推理平台支持的量化方式进行量化的网络子图;和/或针对每一第一类网络子图,在该第一类网络子图的输入端或输出端与多个第二类网络子图连接的情况下,一量化中间层位于:该第一类网络子图的输入端或输出端与所述多个第二类网络子图之间。4.根据权利要求1所述的方法,其特征在于,所述第一类网络子图为:需要采用所述模型推理平台不支持的量化方式进行量化的网络子图;和/或所述第一类网络子图为:包含本地不支持进行量化的网络层的网络子图;和/或所述第一类网络子图为:用户指定的需要采用第三方量化方式进行量化的网络子图。5.根据权利要求1-4中任一项所述的方法,其特征在于,所述以量化中间层参数中输出量化方式标识所指示的输出量化方式,对沿所述数据处理流向的下一网络子图进行量化,包括:识别量化中间层参数中包括的输出量化方式标识;从用户配置的量化方式和本地支持的量化方式中,查找所识别出的输出量化方式标识对应的输出量化方式,按照查找到的输出量化方式对沿所述数据处理流向的下一网络子图
进行量化。6.一种网络模型推理方法,其特征在于,所述方法包括:获得待推理网络模型,其中,所述待推理网络模型为:对待量化网络模型进行量化得到的模型,所述待量化网络模型包括量化中间层,所述量化中间层分别与第一类网络子图的输入端、输出端相连接,所述量化中间层的参数包括:输入量化方式标识、输出量化方式标识、输入数据类型和输出数据类型,所述量化中间层用于指示:按照所述输出量化方式标识对应的输出量化方式、对沿所述待量化网络模型的数据处理流向的下一网络子图进行量化,所述第一类网络子图为:需要采用第三方量化方式进行量化的网络子图;在基于待推理数据、沿所述数据处理流向进行推理的过程中,判断当前推理对象是否为量化中间层;若为是,参考所述输入量化方式标识对应的输入量化方式对所述输入数据类型的输入数据进行反量化,得到反量化数据,再按照所述输出量化方式标识对应的输出量化方式对所述反量化数据进行量化,输出所述输出数据类型的输出数据,并基于所述输出数据对沿所述数据处理流向的下一网络子图进行推理。7.根据权利要求6所述的方法,其特征在于,所述方法还包括:在基于待推理数据、沿所述数据处理流向进行推理的过程中,判断当前推理对象是否为第一类网络子图;若为是,按照用户配置的推理信息,基于所述待推理数据,对所述第一类网络子图进行推理。8.一种网络模型量化装置,其特征在于,所述装置包括:第一模型获得模块,用于获得待量化网络模型,其中,所述待量化网络模型包括量化中间层,所述量化中间层分别与第一类网络子图的输入端、输出端相连接,所述量化中间层的参数包括:输入量化方式标识、输出量化方式标识、输入数据类型和输出数据类型,所述量化中间层用于:参考所述输入量化方式标识对应的输入量化方式对所述输入数据类型的输入数据进行反量化,得到反量化数据,再按照所述输出量化方式标识对应的输出量化方式对所述反量化数据进行量化,输出所述输出数据类型的输出数...

【专利技术属性】
技术研发人员:孟泽民
申请(专利权)人:杭州海康威视数字技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1