CN111915017B - 一种校准方法、装置、终端设备及存储介质 - Google Patents
一种校准方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN111915017B CN111915017B CN202010747179.2A CN202010747179A CN111915017B CN 111915017 B CN111915017 B CN 111915017B CN 202010747179 A CN202010747179 A CN 202010747179A CN 111915017 B CN111915017 B CN 111915017B
- Authority
- CN
- China
- Prior art keywords
- information
- layer
- calibrated
- grouping
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 27
- 238000013139 quantization Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
- Read Only Memory (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种校准方法、装置、终端设备及存储介质。所述方法包括:确定模型中每个待校准层的层属性信息;根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;根据所述分组信息对所述待校准层进行分组校准。利用该方法,在可用资源能够支持的前提下,对所有待校准层进行合理分组,使得一次校准操作同时校准多个层,进而减少校准操作的次数,充分利用计算资源,从而提升了模型校准时的计算速度。
Description
技术领域
本发明实施例涉及数据处理技术领域,尤其涉及一种校准方法、装置、终端设备及存储介质。
背景技术
模型量化是深度学习领域一种常用的技术,通过将模型参数和输入从高精度量化为低精度,如从float32量化为int8,可以提高模型运算速度并减小模型大小。
为了降低模型量化过程中精度的损失,需要对模型进行校准,以获取需要量化的数值的动态范围,进而得到量化因子,其中量化因子是由动态范围计算获得的。
目前的校准算法中,通常是按照模型中数据输入的方向,对模型的各层逐层进行校准,每次规定计算一层或相邻的多层,从而导致模型校准时计算速度慢的技术问题。
发明内容
本发明实施例提供了一种校准方法、装置、终端设备及存储介质,提升了模型校准时的计算速度。
第一方面,本发明实施例提供了一种校准方法,包括:
确定模型中每个待校准层的层属性信息;
根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;
根据所述分组信息对所述待校准层进行分组校准。
进一步地,所述根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息,包括:
将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层;
确定所述目标层的分组信息;
重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成。
进一步地,所述确定所述目标层的分组信息,包括:
判断所述目标层是否为所需内存信息最大的待校准层;
若是,则将预设的分组信息确定为所述目标层的分组信息;
若否,根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,其中,所选取待校准层为已分组的待校准层。
进一步地,所述根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,包括:
根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息;
根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息。
进一步地,所述组属性信息包括的当前内存信息和当前时长信息。
进一步地,所述根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息,包括:
将所选取待校准层中分组信息相同的各待校准层的所需内存信息的和,确定为所对应分组信息的当前内存信息;
将所选取待校准层中分组信息相同的各待校准层的所需时长信息的最大值,确定为所对应分组信息的当前时长信息。
进一步地,所述根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息,包括:
将可用资源信息与所确定的组属性信息中的当前内存信息的差值,确定为剩余内存信息;
从各所述剩余内存信息中选取大于所述目标前层的层属性信息中的所需内存信息的剩余内存信息;
若所选取的剩余内存信息对应的当前时长信息大于所述目标层的层属性信息中的所需时长信息,则基于所选取的剩余内存信息对应的分组信息确定所述目标层的分组信息;否则,将区别于已有分组信息的分组信息确定为所述目标层的分组信息。
第二方面,本发明实施例还提供了一种校准装置,包括:
第一确定模块,用于确定模型中每个待校准层的层属性信息;
第二确定模块,用于根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;
分组校准模块,用于根据所述分组信息对所述待校准层进行分组校准。
第三方面,本发明实施例还提供了一种终端设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例提供的校准方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明实施例提供的校准方法。
本发明实施例提供了一种校准方法、装置、终端设备及存储介质,首先确定模型中每个待校准层的层属性信息;然后根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;最后根据所述分组信息对所述待校准层进行分组校准。利用上述技术方案,在可用资源能够支持的前提下,对所有待校准层进行合理分组,使得一次校准操作同时校准多个层,进而减少校准操作的次数,充分利用计算资源,从而提升了模型校准时的计算速度。
附图说明
图1为本发明实施例一提供的一种校准方法的流程示意图;
图2为本发明实施例二提供的一种校准方法的流程示意图;
图3为本发明实施例三提供的一种校准装置的结构示意图;
图4为本发明实施例四提供的一种终端设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对相应内容进行区分,并非用于限定顺序或者相互依存关系。
需要注意,本发明中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
实施例一
图1为本发明实施例一提供的一种校准方法的流程示意图,该方法可适用于对模型中待校准层进行校准的情况,该方法可以由校准装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上,在本实施例中终端设备包括但不限于:手机、电脑和个人数字助理等设备。
本发明可以应用至模型量化场景,在模型训练完成后通过本发明提供的校准方法对模型中待校准层进行分组校准,以得到各待校准层的量化因子。量化因子可以用于实现模型量化。如图1所示,本发明实施例一提供的一种校准方法,包括如下步骤:
S110、确定模型中每个待校准层的层属性信息。
在本实施例中,待校准层可以认为模型中需要进行校准的层,即需要确定量化因子的层。模型中哪层为待校准层此处不作限定,可以根据实际情况设定。模型可以为任意需要量化的机器学习模型。层属性信息可以为表征层属性的信息。基于层属性信息可以确定待校准层的分组信息,从而对待校准层进行分组校准。
本实施例不对层属性信息所包括的内容进行限定,只要能够确定出待校准层的分组信息即可,示例性的,所述层属性信息包括所需内存信息和所需时长信息,其中,所需内存信息可以认为是待校准层所需的内存大小,即待校准层进行运算时所需的内存的大小。所需时长信息可以认为是待校准层运算时所需的时长。
在进行量化校准时,本步骤可以确定模型中每个待校准层的层属性信息,确定的手段不作限定,如基于待校准层的配置(如输入数据的尺寸、卷积核的尺寸、移动步长、函数的参数等)确定。
S120、根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息。
可用资源信息可以表征终端设备中进行待校准层校准时可用的资源的信息。所述可用资源信息包括系统内存信息。系统内存信息可以认为是终端设备单次可承受的内存。分组信息可以限定待校准层进行校准的顺序。本实施例可以基于分组信息进行待校准层的分组校准,即每次校准分组信息相同的待校准层,以提升校准速度。
在确定层属性信息后,本步骤可以基于层属性信息确定待校准层的分组信息,具体地:本步骤可以按照待校准层中所需内存信息所表征的所需内存的大小,依次从大到小选取一个待校准层,确定该待校准层的分组信息。首次选取的待校准层的分组信息可以任意设定,即将预设的分组信息确定为该待校准层的分组信息,如分组信息为第一组或任意组。非首次选取的待校准层的分组信息可以基于已确定的分组信息所包括的待校准层的层属性信息、当前选取的待校准层的层属性信息和可用资源信息,确定当前选取的待校准层的分组信息。
示例性的,在确定当前选取的待校准层的分组信息时,可以首先确定当前选取的待校准层的分组信息是否与已确定的分组信息相同,若否,则为当前选取的待校准层设置不同于已确定的分组信息的分组信息,如当前已确定的分组信息为第一组和第二组,则当前选取的待校准层的分组信息可以为第三组;若是,则当前选取的待校准层的分组信息可以与已确定的分组信息中的一个分组信息,即目标分组信息相同,确定当前选取的待校准层的分组信息时,可以保证当前选取的待校准层的所需内存信息与目标分组信息所包括待校准层的所需内存信息的和小于或等于可用资源信息,此外,当前选取的待校准层的所需时长信息不大于目标分组信息的当前时长信息,当前时长信息可以为目标分组信息所包括待校准层中的最大的所需时长信息。
S130、根据所述分组信息对所述待校准层进行分组校准。
在确定分组信息后,本步骤可以根据各待校准层的分组信息依次对各待校准层进行分组校准。分组校准即每次校准分组信息相同的待校准层,不同分组信息的待校准层依次被校准。分组校准时可以基于分组信息所表征组的大小确定校准顺序。如在校准给待校准层时,分组信息指示第一组的待校准层先于分组信息指示第二组的待校准层。
示例性的,终端设备每次对相同分组信息的待校准层进行校准,以得到各待校准层的量化因子。本发明不对校准的手段进行限定。
在对待校准层进行校准时,可以以分组信息为单元,确定分组信息相同的各待校准层的数据,如输入数据和输出数据;然后基于各待校准层的数据确定该分组信息所包括的各待校准层的量化因子。
在确定待校准层的数据时,不同分组信息对应的待校准层的数据可以基于已确定量化因子的分组信息所包括的待校准层的数据确定;也可以重新从模型的第一层起确定不同分组信息对应待校准层的数据。
示例性的,模型待校准层包括L1、L2、L3和L4。L2、L3和L4的分组信息均为第一组;L1的分组信息为第二组;在确定第一组中待校准层的量化因子时,可以确定第一组对应的,即所包括的待校准层L2、L3和L4的数据,然后基于确定出的数据确定L2、L3和L4的量化因子。在确定第二组对应的待校准层的量化因子时,可以基于L1的数据确定量化因子,L1的数据可以直接采用第一组中确定L2数据时确定的L1的数据,也可以重新对模型进行处理确定L1的数据,对模型进行处理可以认为是将应用数据输入至模型,以确定L1层的数据。应用数据可以认为是校准时输入模型的数据。
本发明实施例一提供的一种校准方法,首先确定模型中每个待校准层的层属性信息;然后根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;最终根据所述分组信息对所述待校准层进行分组校准。利用上述方法,在可用资源能够支持的前提下,对所有待校准层进行合理分组,使得一次校准操作同时校准多个层,进而减少校准操作的次数,充分利用计算资源,从而提升了模型校准时的计算速度。
实施例二
图2为本发明实施例二提供的一种校准方法的流程示意图,本实施例二在上述各实施例的基础上进行具体化。在本实施例中,将根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息,进一步具体化为:
将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层;
确定所述目标层的分组信息;
重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成。
本实施例尚未详尽的内容请参考实施例一。
如图2所示,本发明实施例二提供的一种校准方法,包括如下步骤:
S210、确定模型中待校准层的层属性信息。
S220、将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层。
确定模型中各待校准层的分组信息时,本步骤可以从模型中各待校准层中按照所需内存信息从大到小的顺序,依次确定目标层。即将各待校准层按照所需内存信息由大到小的顺序排序,然后按照所需内存信息从大到小的顺序从各待校准层中选取一个待校准层作为目标层。
S230、确定所述目标层的分组信息。
确定目标层后,本步骤可以为该目标层确定分组信息。若目标层为首个被选取的待校准层,则确定的分组信息可以为任意组,如第一组。若目标层为非首个被选取的待校准层,则可以基于目标层的层属性信息中所需内存信息与分组信息相同的待校准层的层属性信息中所需内存信息的和,与可用资源信息的比较结果,以及目标层的层属性信息中所需时长信息与分组信息相同的待校准层的所需时长信息的比较结果,确定目标层的分组信息,即确定目标层是否分组至已确定的分组信息所处组中。
在对待校准层进行校准时,可以基于分组信息的大小顺序对待校准层进行校准。
S240、重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成。
S250、根据所述分组信息对所述待校准层进行分组校准。
本发明实施例二提供的一种校准方法,具体化了确定分组信息的操作。利用该方法,能够提升模型校准的计算速度,提升模型量化校准的灵活性。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一个实施例中,确定所述目标层的分组信息,包括:
判断所述目标层是否为所需内存信息最大的待校准层;
若是,则将预设的分组信息确定为所述目标层的分组信息;
若否,根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,其中,所选取待校准层为已分组的待校准层。
在目标层是所需内存信息最大的待校准层时,可以认为该目标层对应的待校准层为首个被选取的,则将预设的分组信息确定为该目标层的分组信息。预设的分组信息不作限定,可以为指示任一组的分组信息。如指示第一组的分组信息,或指示第二组的分组信息。此处不限定所需内存信息最大的待校准层被优先校准。
如果目标层不是所需内存信息最大的待校准层,则在确定该目标层的分组信息时,需要根据目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定是否将目标层的分组信息确定为已分配,即已确定的分组信息。已分组的待校准层的分组信息已被确定。
在一个实施例中,所述根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,包括:
根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息;
根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息。组属性信息可以认为是表征分组信息对应组的属性的信息。组属性信息可以基于组内所包括待校准层的所需内存信息和所需时长信息确定。
在确定目标层的分组信息时,可以以分组信息为单位,遍历各分组信息对应的组的待校准层,确定是否将目标层的分组信息确定为已有分组信息。如将组属性信息和层属性信息中相应内容进行累加,并将累加后的结果与可用资源信息进行比对,确定目标层的分组信息。
在一个实施例中,所述组属性信息包括的当前内存信息和当前时长信息。
当前内存信息可以为分组信息对应组内所包括待校准层的所需内存信息的和。当前时长信息可以为分组信息对应组内所包括待校准层的所需时长信息的最大值。
确定每个分组信息对应的组属性信息时,可以针对每个分组信息所对应的待校准层的层属性信息确定。如基于层属性信息中的所需内存信息确定当前内存信息,基于层属性信息中的所需时长信息确定当前时长信息。
确定出组属性信息后,本实施例可以通过比对组属性信息、目标层的层属性信息和可用资源信息,以确定目标层的分组信息。
示例性的,基于组属性信息中当前内存信息与可用资源信息的差值,与目标层的层属性信息中所需内存信息的比较结果,和组属性信息中当前时长信息与目标层的层属性信息中所需时长信息的比较结果,确定目标层的分组信息。如,若所需内存信息的比较结果为差值大于或等于所需内存信息,且所需时长信息的比较结果为当前时长信息大于所需时长信息,则将该组属性信息对应的分组信息确定为目标层的分组信息;否则,为目标层设置新的分组信息,即不同于已确定的分组信息的分组信息。
在一个实施例中,所述根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息,包括:
将所选取待校准层中分组信息相同的各待校准层的所需内存信息的和,确定为所对应分组信息的当前内存信息;
将所选取待校准层中分组信息相同的各待校准层的所需时长信息的最大值,确定为所对应分组信息的当前时长信息。
示例性的,分组信息为第一组的待校准层包括L2、L3和L4,分组信息为第二组的待校准层包括L1,则第一组的分组信息所对应的组属性信息中的当前内存信息为L2、L3和L4的所需内存信息之和;第一组的分组信息所对应的组属性信息中的当前内存信息为L2、L3和L4的所需时长信息中的最大值。
在一个实施例中,所述根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息,包括:
将可用资源信息与所确定的组属性信息中的当前内存信息的差值,确定为剩余内存信息;
从各所述剩余内存信息中选取大于所述目标前层的层属性信息中的所需内存信息的剩余内存信息;
若所选取的剩余内存信息对应的当前时长信息大于所述目标层的层属性信息中的所需时长信息,则基于所选取的剩余内存信息对应的分组信息确定所述目标层的分组信息;否则,将区别于已有分组信息的分组信息确定为所述目标层的分组信息。
在基于所选取的剩余内存信息对应的分组信息确定目标层的分组信息时,若所选取的剩余内存信息的个数为一个,则将所选取剩余内存信息对应的分组信息确定为目标层的分组信息;否则,将任意剩余内存信息对应的分组信息确定为目标层的分组信息,或将剩余内存信息对应的分组信息中的最小值确定为目标层的分组信息。此处不限定所选取的剩余内存信息的个数为至少两个时确定目标层的分组信息的手段,可以基于实际情况从所选取的剩余内存信息中选取一个剩余内存信息对应的分组信息,并将该分组信息确定为目标层的分组信息。
通过本发明提供的校准方法,在可用资源能够支持的前提下,对所有待校准层进行合理分组,使得一次校准操作同时校准多个层,进而减少校准操作的次数,充分利用计算资源。
以下对本发明提供的校准方法进行示例性的描述:
本发明提供的校准方法可以认为是对模型量化校准的方法。目前在基于校准算法对模型进行校准时,一般由模型推理和模型各层输出统计量计算两部分组成。由于深度学习网络本身计算量大,模型各中间层输出数据的维度大(张量大、尺寸大),如需对所有层进行校准,需要进行总层数/单次计算的层数=计算次数次计算,校准方法不灵活,无法充分利用计算资源,进而导致校准算法的计算速度慢且占用内存多。在资源受限的条件下(例如单机),如何更高效地利用资源,调度计算任务以加快校准速度是本发明想要解决的技术问题。
本发明提供的校准方法将量化校准的过程抽象为一个装箱问题。
调度的基本单元为需要量化的深度网络的层,根据层的配置(包括输入数据的尺寸、卷积核的尺寸、移动步长、函数的参数等),可以计算出其需要的计算量和内存,即属性信息,系统总的可用资源,即可用资源信息也可以计算出来。这样,校准的过程可以认为是一个二维装箱问题,即如何用最少的箱子(长宽为系统可用计算量和内存资源)将所有的盒子(长宽为深度网络层需要的计算量和内存)全部装进去。其中,盒子可以为待确定量化因子的层。在确定层的量化因子时可以基于该层的数据,如输出数据确定。箱子可以认为是系统内存。每个箱子可以认为是不同时刻的系统内存。
系统总的可用资源,即可用资源信息是已知的,即,单次可承受的内存是已知的。
装“箱子”的规则如下:
首先,确定各层所需的内存大小,即所需内存信息,然后,按照内存从大到小的顺序,将每一层在已开的“箱子”(就是指,单次可承受的内存)中,挑选代价最小的一个“箱子”装入,当已开的“箱子”装不下某一层的时候,打开一个新的“箱子”。
代价最小是指,当这个“箱子”再装入这一层时,总体计算时长,即当前时长信息不会增长。其中,总体计算时长基于箱子中盒子对应的所需时长信息确定。计算时长,即所需时长信息是按照数据输入模型的顺序来决定的,例如,L4的计算时长大于L3、L3的计算时长大于L2、L2的计算时长大于L1。也就是说,按照数据输入的顺序,靠后的层的计算时长大于靠前的层的计算时长。靠后的层的计算时长为该层前所有层的计算时长加上该层的计算时长。
示例性的,本发明提供的校准方法的执行主体可以为编译器的校准装置,假设可用资源信息为16G,需要计算量化因子的层包括L1、L2、L3和L4。L1所需内存信息为8G,L2所需内存信息为1G,L3所需内存信息为10G,L4所需内存信息为512M,校准方法包括如下步骤:
S1,计算L1~L4每层所需的内存。
S2,按照内存从大到小进行排序,L3—L1—L2—L4。
S3,装L3(按内存从大到小的顺序装),即先开第一个“箱子”,假设每一个“箱子”的内存量是16G,将L3放入第一个箱子中。
S4,装L1,第一个“箱子”无法同时容纳L3和L1,因此,再开第二个“箱子”,将L1放入第二个“箱子”中。
S5,装L2,通过遍历两个已开的“箱子”,发现两个“箱子”都可以装L2,那么需要对装入代价进行计算,第一个“箱子”中装的L3,位于L2之后,当L2装入第一个“箱子”后,计算时长不会增长,而第二个“箱子”中的L1位于L2之前,当L2装入第二个“箱子”后,计算时长会变为L2的计算时长,因此,将L2装入第一个“箱子”中。
S6,装L4,同样,两个箱子均可放入L4,但是,第一个箱子放入L4之后,“代价”是从L3的时长变为L4的时长,这个“代价”比较装入第二个“箱子”的“代价”小,因此,将L4装入第一个“箱子”。
S7,以箱子为单位依次对各箱子中的各层进行校准,以确定对应的量化因子。
实施例三
图3为本发明实施例三提供的一种校准装置的结构示意图,该装置可适用于对模型中待校准层进行校准的情况,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。
如图3所示,该装置包括:
第一确定模块31,用于确定模型中待校准层的层属性信息;
第二确定模块32,用于根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;
分组校准模块33,用于根据所述分组信息对所述待校准层进行分组校准。
在本实施例中,该装置首先通过第一确定模块31确定模型中待校准层的层属性信息;然后通过第二确定模块32根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;最后通过分组校准模块33根据所述分组信息对所述待校准层进行分组校准。
本实施例提供了一种校准装置,在可用资源能够支持的前提下,对所有待校准层进行合理分组,使得一次校准操作同时校准多个层,进而减少校准操作的次数,充分利用计算资源,从而提升了模型校准时的计算速度。
进一步地,第二确定模块32,具体用于:
将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层;
确定所述目标层的分组信息;
重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成。
进一步地,第二确定模块32确定所述目标层的分组信息,包括:
判断所述目标层是否为所需内存信息最大的待校准层;
若是,则将预设的分组信息确定为所述目标层的分组信息;
若否,根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,其中,所选取待校准层为已分组的待校准层。
进一步地,第二确定模块32根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,包括:
根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息;
根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息。
进一步地,所述组属性信息包括的当前内存信息和当前时长信息。
进一步地,第二确定模块32根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息,包括:
将所选取待校准层中分组信息相同的各待校准层的所需内存信息的和,确定为所对应分组信息的当前内存信息;
将所选取待校准层中分组信息相同的各待校准层的所需时长信息的最大值,确定为所对应分组信息的当前时长信息。
进一步地,第二确定模块32根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息,包括:
将可用资源信息与所确定的组属性信息中的当前内存信息的差值,确定为剩余内存信息;
从各所述剩余内存信息中选取大于所述目标前层的层属性信息中的所需内存信息的剩余内存信息;
若所选取的剩余内存信息对应的当前时长信息大于所述目标层的层属性信息中的所需时长信息,则基于所选取的剩余内存信息对应的分组信息确定所述目标层的分组信息;否则,将区别于已有分组信息的分组信息确定为所述目标层的分组信息。
上述校准装置可执行本发明任意实施例所提供的校准方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种终端设备的结构示意图。如图4所示,本发明实施例四提供的终端设备包括:一个或多个处理器41和存储装置42;该终端设备中的处理器41可以是一个或多个,图4中以一个处理器41为例;存储装置42用于存储一个或多个程序;所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如本发明实施例中任一项所述的校准方法。
所述终端设备还可以包括:输入装置43和输出装置44。
终端设备中的处理器41、存储装置42、输入装置43和输出装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。
该终端设备中的存储装置42作为一种计算机可读存储介质,可用于存储一个或多个程序,所述程序可以是软件程序、计算机可执行程序以及模块,如本发明实施例一或二所提供校准方法对应的程序指令/模块(例如,附图3所示的校准装置中的模块,包括:第一确定模块31、第二确定模块32和分组校准模块33)。处理器41通过运行存储在存储装置42中的软件程序、指令以及模块,从而执行终端设备的各种功能应用以及数据处理,即实现上述方法实施例中校准方法。
存储装置42可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储装置42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
并且,当上述终端设备所包括一个或者多个程序被所述一个或者多个处理器41执行时,程序进行如下操作:
确定模型中待校准层的层属性信息;
根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;
根据所述分组信息对所述待校准层进行分组校准。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行校准方法,该方法包括:确定模型中待校准层的层属性信息;
根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息;
根据所述分组信息对所述待校准层进行分组校准。
可选的,该程序被处理器执行时还可以用于执行本发明任意实施例所提供的校准方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、闪存、光纤、便携式CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、无线电频率(Radio Frequency,RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种校准方法,其特征在于,包括:
确定模型中每个待校准层的层属性信息;
根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息,所述层属性信息包括所需内存信息和所需时长信息;
根据所述分组信息对所述待校准层进行分组校准;
其中,所述根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息,包括:
将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层;
确定所述目标层的分组信息,首次选取的目标层的分组信息基于预设的分组信息确定,非首次选取的目标层的分组信息基于已确定的分组信息所包括的待校准层的层属性信息、当前选取的目标层的层属性信息和所述可用资源信息确定;
重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成;
其中,所述确定所述目标层的分组信息,包括:
判断所述目标层是否为所需内存信息最大的待校准层;
若是,则将预设的分组信息确定为所述目标层的分组信息;
若否,根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,其中,所选取待校准层为已分组的待校准层。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,包括:
根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息;
根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息。
3.根据权利要求2所述的方法,其特征在于,所述组属性信息包括的当前内存信息和当前时长信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所选取待校准层中分组信息相同的各待校准层的层属性信息,确定每个分组信息对应的组属性信息,包括:
将所选取待校准层中分组信息相同的各待校准层的所需内存信息的和,确定为所对应分组信息的当前内存信息;
将所选取待校准层中分组信息相同的各待校准层的所需时长信息的最大值,确定为所对应分组信息的当前时长信息。
5.根据权利要求3所述的方法,其特征在于,所述根据所确定的组属性信息、所述目标层的层属性信息和可用资源信息,确定所述目标层的分组信息,包括:
将可用资源信息与所确定的组属性信息中的当前内存信息的差值,确定为剩余内存信息;
从各所述剩余内存信息中选取大于目标前层的层属性信息中的所需内存信息的剩余内存信息;
若所选取的剩余内存信息对应的当前时长信息大于所述目标层的层属性信息中的所需时长信息,则基于所选取的剩余内存信息对应的分组信息确定所述目标层的分组信息;否则,将区别于已有分组信息的分组信息确定为所述目标层的分组信息。
6.一种校准装置,其特征在于,包括:
第一确定模块,用于确定模型中待校准层的层属性信息;
第二确定模块,用于根据各所述层属性信息和可用资源信息,确定对应待校准层的分组信息,所述层属性信息包括所需内存信息和所需时长信息;
分组校准模块,用于根据所述分组信息对所述待校准层进行分组校准;
所述第二确定模块,用于:将所述待校准层按照所需内存信息从大到小的顺序,依次确定目标层;确定所述目标层的分组信息;重新确定目标层,直至所述模型中各所述待校准层的分组信息均确定完成;其中,首次选取的目标层的分组信息基于预设的分组信息确定,非首次选取的目标层的分组信息基于已确定的分组信息所包括的待校准层的层属性信息、当前选取的目标层的层属性信息和所述可用资源信息确定;
其中,所述第二确定模块确定所述目标层的分组信息,包括:判断所述目标层是否为所需内存信息最大的待校准层;若是,则将预设的分组信息确定为所述目标层的分组信息;若否,根据所述目标层的层属性信息、所选取待校准层的层属性信息、所选取待校准层的分组信息和可用资源信息确定所述目标层的分组信息,其中,所选取待校准层为已分组的待校准层。
7.一种终端设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747179.2A CN111915017B (zh) | 2020-07-29 | 2020-07-29 | 一种校准方法、装置、终端设备及存储介质 |
US18/004,021 US11816547B2 (en) | 2020-07-29 | 2021-07-23 | Calibration method and apparatus, terminal device, and storage medium |
PCT/CN2021/108133 WO2022022417A1 (zh) | 2020-07-29 | 2021-07-23 | 一种校准方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010747179.2A CN111915017B (zh) | 2020-07-29 | 2020-07-29 | 一种校准方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111915017A CN111915017A (zh) | 2020-11-10 |
CN111915017B true CN111915017B (zh) | 2023-11-24 |
Family
ID=73287385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010747179.2A Active CN111915017B (zh) | 2020-07-29 | 2020-07-29 | 一种校准方法、装置、终端设备及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11816547B2 (zh) |
CN (1) | CN111915017B (zh) |
WO (1) | WO2022022417A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111915017B (zh) * | 2020-07-29 | 2023-11-24 | 北京灵汐科技有限公司 | 一种校准方法、装置、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110058943A (zh) * | 2019-04-12 | 2019-07-26 | 三星(中国)半导体有限公司 | 用于电子设备的内存优化方法和设备 |
CN110389824A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN110738316A (zh) * | 2018-07-20 | 2020-01-31 | 北京三星通信技术研究有限公司 | 基于神经网络的操作方法、装置及电子设备 |
WO2020093306A1 (zh) * | 2018-11-08 | 2020-05-14 | 北京比特大陆科技有限公司 | 神经网络层分组方法、装置、设备、存储介质及程序产品 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10868893B2 (en) * | 2017-03-31 | 2020-12-15 | Xilinx, Inc. | Network interface device |
CN111915017B (zh) * | 2020-07-29 | 2023-11-24 | 北京灵汐科技有限公司 | 一种校准方法、装置、终端设备及存储介质 |
US20220101133A1 (en) * | 2020-09-29 | 2022-03-31 | Qualcomm Incorporated | Dynamic quantization for energy efficient deep learning |
-
2020
- 2020-07-29 CN CN202010747179.2A patent/CN111915017B/zh active Active
-
2021
- 2021-07-23 WO PCT/CN2021/108133 patent/WO2022022417A1/zh active Application Filing
- 2021-07-23 US US18/004,021 patent/US11816547B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110389824A (zh) * | 2018-04-20 | 2019-10-29 | 伊姆西Ip控股有限责任公司 | 处理计算任务的方法、设备和计算机程序产品 |
CN110738316A (zh) * | 2018-07-20 | 2020-01-31 | 北京三星通信技术研究有限公司 | 基于神经网络的操作方法、装置及电子设备 |
WO2020093306A1 (zh) * | 2018-11-08 | 2020-05-14 | 北京比特大陆科技有限公司 | 神经网络层分组方法、装置、设备、存储介质及程序产品 |
CN110058943A (zh) * | 2019-04-12 | 2019-07-26 | 三星(中国)半导体有限公司 | 用于电子设备的内存优化方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
US20230196197A1 (en) | 2023-06-22 |
US11816547B2 (en) | 2023-11-14 |
WO2022022417A1 (zh) | 2022-02-03 |
CN111915017A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11934871B1 (en) | Task scheduling method and apparatus, electronic device, and readable storage medium | |
WO2011159309A1 (en) | Combined branch target and predicate prediction | |
US20190370322A1 (en) | Spreadsheet recalculation algorithm for directed acyclic graph processing | |
CN109783157A (zh) | 一种算法程序加载的方法及相关装置 | |
CN114429195B (zh) | 混合专家模型训练的性能优化方法和装置 | |
WO2024051270A1 (zh) | 任务执行的方法、装置、存储介质及电子设备 | |
CN111915017B (zh) | 一种校准方法、装置、终端设备及存储介质 | |
CN109189572A (zh) | 一种资源预估方法及系统、电子设备和存储介质 | |
CN106649654A (zh) | 一种数据更新的方法和装置 | |
CN115586995A (zh) | 负载机最大负载量的预测方法、系统、计算机设备及介质 | |
CN112990461B (zh) | 构建神经网络模型的方法、装置、计算机设备和存储介质 | |
CN117519946A (zh) | 深度学习网络中的内存资源调度方法、装置、设备及介质 | |
CN112035523B (zh) | 一种并行度的确定方法、装置、设备及存储介质 | |
CN113704687B (zh) | 一种张量计算运行方法、装置及运算系统 | |
CN109815116A (zh) | 一种软件测试方法和设备平台及计算机可读存储介质 | |
CN114398178A (zh) | 一种任务执行方法、装置及电子设备 | |
CN114492787A (zh) | 自适应的神经网络训练方法、电子设备、介质和程序产品 | |
CN110059302A (zh) | 数据日期格式化方法、装置、设备及可读存储介质 | |
CN110852684B (zh) | 货源偏好的确定方法、装置、设备及存储介质 | |
CN109308256A (zh) | 一种java程序动态分析方法、设备和存储介质 | |
CN116822259B (zh) | 基于场景模拟的评价信息生成方法、装置和电子设备 | |
CN118277133B (zh) | 模型运算优化方法、产品、设备及介质 | |
CN107562442B (zh) | 一种读取数据的方法和装置 | |
CN113032122A (zh) | 一种天气预报方法、装置、设备及存储介质 | |
CN117454959A (zh) | 神经网络模型结构确定方法、装置、设备、介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |