CN112825152A - 深度学习模型的压缩方法、装置、设备及存储介质 - Google Patents
深度学习模型的压缩方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112825152A CN112825152A CN201911144297.8A CN201911144297A CN112825152A CN 112825152 A CN112825152 A CN 112825152A CN 201911144297 A CN201911144297 A CN 201911144297A CN 112825152 A CN112825152 A CN 112825152A
- Authority
- CN
- China
- Prior art keywords
- data
- deep learning
- learning model
- graph node
- graph
- 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.)
- Pending
Links
Images
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/045—Combinations of networks
-
- 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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种深度学习模型的压缩方法、装置、设备及存储介质;其中,该压缩方法包括将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩初始深度学习模型。从而不仅能够提升运算速率,减小模型体积,且不会对模型的预测效果产生影响。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种深度学习模型的压缩方法、装置、设备及存储介质。
背景技术
深度学习模型是指已经训练完成的神经网络,网络里含有大量的参数,以记录训练数据的特征信息。
目前,由于深度学习模型中含有大量的节点和参数,使得最终训练完成的模型需要消耗巨大的内存和计算代价;为此,人们一般会对模型进行剪枝处理,以剔除模型中不重要的参数来减少模型的冗余,进而提高运算速率,并减小模型体积。
然而,对模型进行剪枝处理,可能会对模型的预测效果产生影响。
发明内容
本申请提供一种深度学习模型的压缩方法、装置、设备及存储介质,不仅能够提升运算速率,减小模型体积,且不会对模型的预测效果产生影响。
为解决上述技术问题,本申请采用的第一个技术方案是:一种深度学习模型的压缩方法,该压缩方法包括:
将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;
将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩所述初始深度学习模型。
为解决上述技术问题,本申请采用的第二个技术方案是:提供一种深度学习模型的压缩装置,该压缩装置包括:
格式转换模块,用于将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;
模型压缩模块,用于将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩所述初始深度学习模型。
为解决上述技术问题,本申请采用的第三个技术方案是:提供一种深度学习模型的压缩设备,所述深度学习模型的压缩设备包括存储器和处理器;所述存储器用于存储实现如上所涉及的深度学习模型的压缩方法的程序指令;所述处理器用于执行所述存储器存储的所述程序指令。
为解决上述技术问题,本申请采用的第四个技术方案是:提供一种存储介质,所述存储介质存储有程序文件,所述程序文件能够被执行以实现如上所涉及的深度学习模型的压缩方法。
本申请提供一种深度学习模型的压缩方法、装置、设备及存储介质,该压缩方法将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式,将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以对初始深度学习模型进行压缩;其中,由于该方法将初始深度模型中的部分图节点保存成了预设格式,不仅有效减小了模型中图节点的加载数量,大大减少了模型的体积,且节省了加载时间,使得运算速率有效提升;同时,通过将图节点的数据类型由浮点型数据转换成整型数据,大大减少了所需要消耗的运算资源,进一步提高了运算速度;另外,相比于对模型进行剪枝处理的方法,该方法不会对模型的预测效果产生影响。
附图说明
图1为本申请第一实施例提供的深度学习模型的压缩方法的具体流程示意图;
图2为本申请第二实施例提供的深度学习模型的压缩方法的具体流程示意图;
图3为本申请第三实施例提供的深度学习模型的压缩方法的具体流程示意图;
图4为本申请第四实施例提供的深度学习模型的压缩方法的具体流程示意图;
图5为本申请深度学习模型的压缩方法一具体实施方式的数据流向示意图;
图6为本申请深度学习模型的压缩方法另一具体实施方式的数据流向示意图;
图7为本申请第五实施例提供的深度学习模型的压缩方法的具体流程示意图;
图8为本申请一实施例提供的深度学习模型的压缩装置的结构示意图;
图9为本申请一实施例提供的深度学习模型的压缩设备的结构示意图;
图10为本申请一实施例提供的存储介质的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请中的术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括至少一个该特征。本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
下面结合附图和实施例对本申请进行详细的说明。
本申请的实施例提供一种深度学习模型的压缩方法、装置、设备及存储介质,其中,该深度学习模型的压缩方法应用服务器中,实现对深度学习模型进行压缩,以减小深度学习模型的大小进而便于安装在终端。
其中,服务器可以为独立的服务器,也可以为服务器集群。该终端可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备。
具体的,本申请中的深度学习模型具体可为基于卷积神经网络训练的图像识别模型,服务器运行该深度学习模型的压缩方法将训练好的图像识别模型进行压缩,并发送至手机中进行保存,以便用户使用该手机通过压缩后的图像识别模型对拍摄的图像或手机中保存的图像进行识别,以得到识别结果。比如,识别拍摄的动物为狗或猫。
当然,上述深度学习模型还可以是根据用户的声音识别用户情感的情感识别模型,或根据文章内容生成文章摘要的摘要生成模型等等,本实施例对此并不加以限制。
请参阅图1,为本申请第一实施例提供的深度学习模型的压缩方法的流程示意图。该深度学习模型的压缩方法应用于服务器中,用于对训练好的深度学习模型进行压缩,以使得该深度学习模型可以安装在容量较小的智能终端中,进而方便用户通过智能终端就可以使用该深度学习模型。
如图1所示,在本实施例中,提供一种深度学习模型的压缩方法,该压缩方法具体包括:
步骤S10:将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式。
具体的,预设格式具体可为Pb格式。
具体的,在初始深度学习模型中指定输入所对应的图节点和输出所对应的图节点,然后将输入和输出所对应的图节点所在的运算过程中涉及到的图节点保存成预设格式。可以理解的是,指定输入和输出所对应的图节点后,输入和输出所对应的运算过程中所涉及到的图节点的数量,相比于初始深度学习模型中的图节点数量大大减少,有效减小了模型的体积;且在具体实施过程中,只需要加载输入和输出所对应的运算过程中所涉及到的图节点,而不需要对其它图节点进行加载,从而大大减少了加载时间,使得运算速率明显提升。
下面结合一具体实施例进行举例说明。
假设初始深度学习模型中具有A、B、C、D、E、F六个图节点,输入为A,输出为B、C,D,E和F,在具体实施过程中,当指定输入所对应的图节点为A时,图节点A可能同时对应A-B、A-B-C、A-B-D、A-B-E、A-B-F这五个不同的运算过程,此时模型中有6个图节点,因模型加载时会将模型中的所有图节点全部加载进来,需要浪费较长的加载时间,从而导致运算速度较低;此时,若在具体实施过程中,只需要得到图节点C的输出结果,则可以指定输入的图节点为A,输出的图节点为C,并将图节点A和图节点C所对应的运算过程中所涉及的所有图节点(图节点A、B、C)保存成Pb格式,可以理解的是,此时模型中只保存了3个图节点,相比于初始深度学习模型中的6个图节点,大大减少了模型中的图节点数量,使得模型体积有效减小;同时,该方法在具体实施过程中,只需要加载A,B,C三个图节点,而不需要对D、E、F图节点进行加载,从而有效减少了加载时间,提升了运算速率。
步骤S11:将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩初始深度学习模型。
具体的,图节点的数据类型包括运算图节点的数据类型和数值图节点的数据类型;其中,运算图节点可进行多个数值的加法、减法、乘法或除法运算,而数值图节点仅涉及一个数值的输入和输出,但数值图节点中可进行数值的放大或缩小。
具体的,上述将图节点的数据类型由浮点型数据转换成整型数据,具体是指将数值图节点的数据类型由浮点型数据转换成整型数据,将部分运算图节点的数据类型由浮点型数据转换成整型数据。
可以理解的是,在具体实施过程中,深度学习模型中的运算图节点有些支持浮点数数据类型,也支持整型数据类型,但有些仅仅支持浮点数数据类型;当运算图节点仅仅支持浮点数数据类型时,运算图节点不进行浮点型数据到整型数据的转化;当运算图节点支持整型数据类型时,则将运算图节点的数据类型由浮点型数据转换成整型数据,以减少所需要消耗的运算资源,进一步提高运算速度。
可以理解的是,参见步骤S10所涉及的具体实施例,上述保存成预设格式的图节点具体可包括图节点A、图节点B及图节点C;在具体实施过程中,可将浮点型图节点A和/或浮点型图节点B和/或浮点型图节点C转化成整型图节点,以加快运算速度;具体的,若浮点型图节点A、浮点型图节点B和浮点型图节点C均支持整型数据类型,则将浮点型图节点A、浮点型图节点B和浮点型图节点C均转换成整型图节点;若浮点型图节点A、浮点型图节点B和浮点型图节点C中,浮点型图节点A和浮点型图节点B支持整型数据类型,浮点型图节点C不支持整型数据类型,则将浮点型图节点A和浮点型图节点B转换成整型数据类型,而浮点型图节点C则不进行转换。当然,参见上述步骤S10所涉及的具体实施例,上述保存成预设格式的图节点具体也可包括图节点A、图节点B及图节点D。
本实施例提供的深度学习模型的压缩方法,通过将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式,将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以对初始深度学习模型进行压缩;其中,由于该方法将初始深度模型中的部分图节点保存成了预设格式,不仅有效减小了模型中图节点的加载数量,大大减少了模型的体积,且节省了加载时间,使得运算速率有效提升;同时,通过将图节点的数据类型由浮点型数据转换成整型数据,大大减少了所需要消耗的运算资源,进一步提高了运算速度;另外,相比于对模型进行剪枝处理的方法,该方法不会对模型的预测效果产生影响。
请参阅图2,为本申请第二实施例提供的深度学习模型的压缩方法的具体流程示意图;在本实施例中,提供一种深度学习模型的压缩方法,该压缩方法具体包括:
步骤S20:获取预先训练的深度学习模型。
具体的,使用Google tensorflow框架进行深度学习模型训练,以得到初始深度学习模型;当然,在其它实施方式中,也可使用GoogLeNet、AlexNet或VGGNet进行模型训练,本实施例对此并不加以限制。
步骤S21:对深度学习模型进行剪枝训练处理以得到初始深度学习模型。
具体的,剪枝训练处理包括剪枝处理和训练处理两个过程,比如先对深度学习模型进行剪枝处理,该剪枝处理是指剪掉训练好的深度学习模型的冗余权重,该冗余权重是指对模型影响不大的权重;再对剪枝后的深度学习模型进行模型训练以得到初始深度学习模型。
当然,在具体实施过程中,也可以采用多次重复剪枝训练处理过程以实现对深度学习模型多次处理以得到剪枝后的深度学习模型。从而不仅可以减小模型的大小,还可以确保模型的准确度。
步骤S22:将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式。
步骤S23:将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩初始深度学习模型。
具体的,步骤22至步骤S23的具体实施过程与上述第一实施例所涉及的步骤S10至步骤S11的实施过程相同,具体可参见上述第一实施例的相关文字描述,本实施例不再一一赘述。
在本实施方式中,先对深度学习模型进行剪枝训练处理,能够进一步地减小模型的大小,确保模型的准确度。
请参阅图3,本申请第三实施例提供的深度学习模型的压缩方法的具体流程示意图;在本实施例中,提供一种深度学习模型的压缩方法,该压缩方法具体包括:
步骤S30:获取预先训练的深度学习模型。
步骤S31:对深度学习模型进行剪枝训练处理以得到初始深度学习模型。
步骤S32:将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式。
具体的,步骤S30至步骤S32的具体实施过程与上述第二实施例所涉及的步骤S20至步骤S22的实施过程相同,具体可参见上述第一实施例和第二实施例的相关文字描述,本实施例不再一一赘述。
步骤S33:依次遍历格式为预设格式的图节点。
具体的,可以理解的是,步骤S33中所涉及的图节点仅为保存成预设格式的图节点。
步骤S34:判断当前遍历的图节点的浮点型数据是否支持转换成整型数据。
具体的,若当前遍历的图节点的浮点型数据支持整型数据类型,则执行步骤S35,若当前遍历的浮点型图节点的浮点型数据不支持整型数据类型,则执行步骤S36。
步骤S35:将图节点的数据类型由浮点型数据转换成整型数据。
具体的,步骤S35具体包括将运算图节点和数值图节点的数据类型由浮点型数据转换成整型数据。
当图节点为运算图节点时,直接将图节点的数据类型由浮点型数据转换成整型数据。在具体实施过程中,可理解为将运算图节点的操作类型由浮点型操作转换为整型操作。
当图节点为数值图节点时,则将数值图节点的输入值由浮点型转换成整型。即,将数值图节点的输入值由浮点型数值转换为整型数值。
步骤S36:保持图节点的数据类型为浮点型数据。
可以理解的是,数值图节点的浮点型数据均可支持整型数据类型,因此,步骤S36中所涉及的图节点是指运算图节点。即,保持运算图节点当前所支持的浮点数数据运算类型。
通过上述方式,不仅有效减小了模型中图节点的加载数量,大大减少了模型的体积,且节省了加载时间,使得运算速率有效提升;同时,通过将图节点的数据类型由浮点型数据转换成整型数据,大大减少了所需要消耗的运算资源,进一步提高了运算速度。
请参阅图4,为本申请第四实施例提供的深度学习模型的压缩方法的具体流程示意图;在本实施例中,提供一种深度学习模型的压缩方法,该压缩方法具体包括:
步骤S40:获取预先训练的深度学习模型。
步骤S41:对深度学习模型进行剪枝训练处理以得到初始深度学习模型。
步骤S42:将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式。
步骤S43:依次遍历格式为预设格式的图节点。
步骤S44:判断当前遍历的图节点的浮点型数据是否支持转换成整型数据。
具体的,步骤S40至步骤S44的具体实施过程与上述第三实施例所涉及的步骤S30至步骤S34的实施过程相同,具体可参见上述第一实施例、第二实施例和第三实施例的相关文字描述,本实施例不再一一赘述。
步骤S45:接收当前图节点的输入值。
可以理解的是,步骤S45中的图节点为数值图节点,该图节点不进行加法、减法、乘法或除法运算。
具体的,输入值可为浮点数或整数。
步骤S46:判断输入值小数点之后的数值是否为零。
具体的,若输入值小数点之后为零,则执行步骤S47;若输入值小数点之后不为零,则执行步骤S48。比如,当前图节点接收到的输入值为1.0,则执行步骤S47;若当前图节点接收到的输入值为1.123,则执行步骤S48。
步骤S47:则直接将图节点的浮点型数据转换成整型数据。
可以理解的是,此时,不对当前图节点的输入值进行扩大或缩小操作,保持原始输入值。
步骤S48:将输入值扩大第一预设倍数之后,将图节点的浮点型数据转换成整型数据。
比如,当前图节点接收到的输入值为0.01,该输入值小数点之后的数值不为零,则将输入值0.01扩大100倍,以将其转化成整型数据1。可以理解的是,在该实施方式中,第一预设倍数为100倍。
步骤S49:接收当前图节点的输入值,并判断图节点输入值的数据类型是否为整型数据。
具体的,若图节点输入值的数据类型是整型数据,则执行步骤S50;若图节点输入值的数据类型不是整型数据,则执行步骤S51。比如,当前图节点的输入值为2,则执行步骤S50;若当前图节点的输入值为1.5,则执行步骤S51。
步骤S50:将图节点的输入值缩小第二预设倍数之后,将图节点的数据类型转化为浮点型数据,再对图节点的输入值进行数据处理。
比如,保持浮点型数据的当前图节点接收到的输入值为100,则可将100缩小1000倍,以将其转换成浮点型数据0.1,然后再对图节点的输入值进行数据处理。可以理解的是,在该实施例中,第二预设倍数为1000倍。
步骤S51:直接对图节点的输入值进行数据处理。
可以理解的是,步骤S51不对图节点接收到的输入值进行扩大或缩小处理,即,将原始接收到的输入值直接进行后续的数据处理。
具体的,上述第二预设倍数和第一预设倍数成倍数关系;具体的,当当前图节点进行加法运算时,第二预设倍数和第一预设倍数相同;当当前图节点进行乘法运算时,第二预设倍数是第一预设倍数的二次方倍。
具体的,下面结合一具体实施例对第一预设倍数和第二预设倍数的关系进行说明:假如该模型中包括图节点A、B、C、D、E,图节点A、B、C支持整型数据类型,图节点D仅支持浮点型数据类型,其中,图节点A和B为图节点C的输入端,图节点C和图节点E为图节点D的输入端,即,经图节点C运算之后的输出值为图节点D的其中一个输入值;在一具体实施过程中,假如图节点A的输入值为0.1,图节点B的输入值为1.5,图节点E的输入值为1.25,由于图节点C支持整型数据类型,则在具体实施过程中,先将图节点A对应的输入值0.1扩大10转换成1之后输入给图节点C,将图节点B的输入值1.5扩大10倍转化成15之后输入给图节点C;可以理解的是,在该过程中,第一预设倍数为10倍。
此时,若图节点C进行加法运算,则图节点C的输出值则为16,由于图节点D不支持整型数据类型,则在进行图节点D运算之前需要先将整型数值16转化成浮点型数值,由于上述图节点C处进行的是加法运算,因此,只需要将16缩小10倍以转化成浮点型数值1.6;由于E节点是浮点型,则不需要对1.25进行修改,仍以1.25输入给图节点D,若图节点D进行加法运算,则输出值为2.85,具体可参见图5,图5为本申请深度学习模型的压缩方法一具体实施方式的数据流向示意图;若图节点D为乘法运算,则输出值为2。
若图节点C中进行乘法运算,则图节点C的输出值为15,此时,同样的,由于图节点D不支持整型数据类型,则在进行图节点D运算之前需要先将整型数值15转化成浮点数,由于图节点C处进行的是乘法运算,图节点A输入至图节点C的数值1在其原始输入值0.1的基础上扩大了10倍,图节点B输入值图节点C的数值15在其原始输入值1.5的基础上扩大了10倍,二者在进行乘法运算后,相当于在原始结果的基础上扩大了100倍,因此,为保证运算结果的准确性,需要图节点C的输出值15缩小100倍以转化成浮点数0.15;此时E节点是浮点型,不需要对其修改,仍以1.25输入值图节点D;此时,若图节点D进行加法运算,则输出值为1.4,若图节点D为乘法运算,则输出值为0.1875。
进一步地,请参阅图5和图6,其中,图6为本申请深度学习模型的压缩方法另一具体实施方式的数据流向示意图;在该实施方式中,图节点F的输出值为0.5,图节点G的输出值为2.5,若图节点C进行加法运算,E节点为乘法运算,且E节点支持整型数据类型,则图节点C的输出值则为16,E节点输出值为125,由于图节点D不支持整型数据类型,则在进行图节点D运算之前需要先将16缩小10倍以转化成1.6,将125缩小100倍转换成1.25,若图节点D进行加法运算,则输出值为2.85,若图节点D为乘法运算,则输出值为2。该过程中将至少部分浮点型图节点转成整型图节点,不仅能够加快运算速率,且能够保证预测结果的准确度,不会对其造成影响。
可以理解的是,在图6所对应的实施方式中,由于图节点E支持整型数据类型,则在具体运算过程中,将0.5和2.5均扩大第一预设倍数10倍,以将其分别转成5和25进行运算,进而得到E节点的输出值125;而在进行图节点D的运算时,由于其仅支持浮点型数据类型,则需要将125进一步转换成浮点型然后进行运算;其中,在该实施方式中,由于图节点E进行的乘法运算,因此,需要将125缩小第一预设倍数的二次方倍,即,缩小102倍,以将其转换成浮点数1.25,然后进行运算。
通过上述方式,不仅有效减小了模型中图节点的加载数量,大大减少了模型的体积,且节省了加载时间,使得运算速率有效提升;同时,通过将图节点的数据类型由浮点型数据转换成整型数据,大大减少了所需要消耗的运算资源,进一步提高了运算速度。
请参阅图7,为本申请第五实施例提供的深度学习模型的压缩方法的具体流程示意图;在本实施例中,提供一种深度学习模型的压缩方法,该压缩方法具体包括:
步骤S70:获取预先训练的深度学习模型。
步骤S71:对深度学习模型进行剪枝训练处理以得到初始深度学习模型。
步骤S72:将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式。
步骤S73:将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩初始深度学习模型。
具体的,步骤70至步骤S73的具体实施过程与上述第二实施例所涉及的步骤S20至步骤S23的实施过程相同,具体可参见上述第一实施例和第二实施例的相关文字描述,本实施例不再一一赘述。
步骤S74:对图节点进行量化处理以再次压缩初始深度学习模型。
具体的,对保存成预设格式的图节点进行修改之后,进一步保存成预设格式然后进行量化处理,以进一步减小深度学习模型的大小,且对保存成预设格式的图节点进行修改之后进一步保存成预设格式无需重新训练模型,有效提升了运算速率。
请参阅图8,为本申请一实施例提供的深度学习模型的压缩装置的结构示意图;在本实施例中,提供一种深度学习模型的压缩装置60,该深度学习模型的压缩装置60可以配置于服务器中,用于执行上述实施例所涉及的深度学习模型的压缩方法。
具体的,该深度学习模型的压缩装置60包括格式转换模块600和模型压缩模块601。
其中,格式转换模块600用于将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;
具体的,预设格式具体可为Pb格式。
具体的,格式转换模块600通过在初始深度学习模型中指定输入所对应的图节点和输出所对应的图节点,然后将输入和输出所对应的图节点所在的运算过程中涉及到的图节点保存成预设格式。可以理解的是,指定输入和输出所对应的图节点后,输入和输出所对应的运算过程中所涉及到的图节点数量一定,相比于初始深度学习模型中的图节点数量,保存成预设格式的图节点数量大大减少,有效减小了模型的体积;且在具体实施过程中,只需要加载输入和输出所对应的运算过程中所涉及到的图节点,而不需要对其它图节点进行加载,从而大大减少了加载时间,使得运算速率明显提升。
其中,模型压缩模块601用于将格式为预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩初始深度学习模型。
具体的,图节点的数据类型包括运算图节点的数据类型和数值图节点的数据类型;其中,运算图节点可进行多个数值的加法、减法、乘法或除法运算,而数值图节点仅涉及一个数值的输入和输出,但数值图节点中可进行数值的放大或缩小。
具体的,上述将图节点的数据类型由浮点型数据转换成整型数据,具体是指将数值图节点的数据类型由浮点型数据转换成整型数据,将部分运算图节点的数据类型由浮点型数据转换成整型数据。
可以理解的是,在具体实施过程中,深度学习模型中的运算图节点有些支持浮点数数据类型,也支持整型数据类型,但有些仅仅支持浮点数数据类型;当运算图节点仅仅支持浮点数数据类型时,运算图节点不进行浮点型数据到整型数据的转化;当运算图节点支持整型数据类型时,则将运算图节点的数据类型由浮点型数据转换成整型数据,以减少所需要消耗的运算资源,进一步提高运算速度。
具体的,当图节点的格式为预设格式时,模型压缩模块601用于依次遍历保存成预设格式的图节点,然后对当前遍历的图节点的浮点型数据是否支持转换成整型进行判断,并根据判断结果对支持整型数据类型的浮点型图节点进行转换,以使其转换成整型数据类型。
请参阅图9,为本申请一实施例提供的深度学习模型的压缩设备的结构示意图;在本实施例中,提供一种深度学习模型的压缩设备,该深度学习模型的压缩设备包括存储器700和处理器701。具体的,该深度学习模型的压缩设备可以是服务器。
其中,存储器700用于存储实现上述实施例所涉及的深度学习模型的压缩方法的程序指令;处理器701用于执行存储器700存储的程序指令。
其中,处理器701还可以称为CPU(Central Processing Unit,中央处理单元)。处理器701可能是一种集成电路芯片,具有信号的处理能力。处理器701还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器700可以为内存条、TF卡等,可以存储深度学习模型的压缩装置60中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器700中。它根据控制器指定的位置存入和取出信息。有了存储器700,深度学习模型的压缩装置60才有记忆功能,才能保证正常工作。深度学习模型的压缩装置60中的存储器700按用途存储器可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
深度学习模型的压缩设备还包括其他的器件,其与现有技术中的深度学习模型的压缩设备中的其他器件及功能相同,在此不再赘述。
请参阅图10,为本申请一实施例提供的存储介质的结构示意图。
在本实施例中,提供一种存储介质,该存储介质存储有程序文件800,程序文件800能够被执行以实现上述实施例所涉及的深度学习模型的压缩方法。
具体的,程序文件800能够被执行以实现上述实施例所涉及的深度学习模型的压缩方法。其中,该程序文件800可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台深度学习模型的压缩设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储装置包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种深度学习模型的压缩方法,其特征在于,包括:
将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;
将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩所述初始深度学习模型。
2.根据权利要求1所述的深度学习模型的压缩方法,其特征在于,所述将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式的步骤之前,还包括:
获取预先训练的深度学习模型;
对所述深度学习模型进行剪枝训练处理以得到所述初始深度学习模型。
3.根据权利要求1所述的深度学习模型的压缩方法,其特征在于,所述将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩所述初始深度学习模型的步骤具体包括:
依次遍历格式为所述预设格式的图节点;
判断当前遍历的所述图节点的浮点型数据是否支持转换成整型数据;
若支持,将所述图节点的数据类型由浮点型数据转换成整型数据;
若不支持,保持所述图节点的数据类型为浮点型数据。
4.根据权利要求3所述的深度学习模型的压缩方法,其特征在于,所述将所述图节点数据类型由浮点型数据转换成整型数据的步骤,包括:
接收当前所述图节点的输入值;
判断所述输入值小数点之后的数值是否为零;
若是,则直接将所述图节点的浮点型数据转换成整型数据;
若否,则将所述输入值扩大第一预设倍数之后,将所述图节点的浮点型数据转换成整型数据。
5.根据权利要求3所述的深度学习模型的压缩方法,其特征在于,当所述当前图节点的数据类型不支持转换成整型数据,保持所述图节点的数据类型为浮点型数据时,包括:
接收所述当前图节点的输入值,并判断所述图节点输入值的数据类型是否为整型数据;
若是,则将所述图节点的输入值缩小第二预设倍数之后,将所述图节点的数据类型转化为浮点型数据,再对所述图节点的输入值进行数据处理;
若否,则直接对所述图节点的输入值进行数据处理。
6.根据权利要求1所述的深度学习模型的压缩方法,其特征在于,在将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据之后,所述方法还包括:
对所述图节点进行量化处理以再次压缩所述初始深度学习模型。
7.根据权利要求1-6任一项所述的深度学习模型的压缩方法,其特征在于,所述预设格式为Pb格式。
8.一种深度学习模型的压缩装置,其特征在于,包括:
格式转换模块,用于将预先训练完成的初始深度学习模型中部分图节点的原始格式修改为预设格式;
模型压缩模块,用于将格式为所述预设格式的图节点的数据类型由浮点型数据转换成整型数据,以压缩所述初始深度学习模型。
9.一种深度学习模型的压缩设备,其特征在于,所述深度学习模型的压缩设备包括存储器和处理器;
所述存储器用于存储实现如权利要求1-7任一项所述的深度学习模型的压缩方法的程序指令;
所述处理器用于执行所述存储器存储的所述程序指令。
10.一种存储介质,其特征在于,存储有程序文件,所述程序文件能够被执行以实现如权利要求1-7任一项所述的深度学习模型的压缩方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911144297.8A CN112825152A (zh) | 2019-11-20 | 2019-11-20 | 深度学习模型的压缩方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911144297.8A CN112825152A (zh) | 2019-11-20 | 2019-11-20 | 深度学习模型的压缩方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112825152A true CN112825152A (zh) | 2021-05-21 |
Family
ID=75906338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911144297.8A Pending CN112825152A (zh) | 2019-11-20 | 2019-11-20 | 深度学习模型的压缩方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112825152A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024012388A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 一种数据类型的处理方法及相关装置 |
-
2019
- 2019-11-20 CN CN201911144297.8A patent/CN112825152A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024012388A1 (zh) * | 2022-07-15 | 2024-01-18 | 华为技术有限公司 | 一种数据类型的处理方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2017219991A1 (zh) | 适用于模式识别的模型的优化方法、装置及终端设备 | |
US20190164043A1 (en) | Low-power hardware acceleration method and system for convolution neural network computation | |
JP6601470B2 (ja) | 自然言語の生成方法、自然言語の生成装置及び電子機器 | |
US11521038B2 (en) | Electronic apparatus and control method thereof | |
JP7224447B2 (ja) | 符号化方法、装置、機器およびプログラム | |
CN111783974A (zh) | 模型构建及图像处理方法、装置、硬件平台及存储介质 | |
CN111178258B (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
CN112687266B (zh) | 语音识别方法、装置、计算机设备和存储介质 | |
CN109766476B (zh) | 视频内容情感分析方法、装置、计算机设备及存储介质 | |
CN107402905B (zh) | 基于神经网络的计算方法及装置 | |
CN116737895A (zh) | 一种数据处理方法及相关设备 | |
US20190295532A1 (en) | Remote Generation of Executable Code for a Client Application Based on Natural Language Commands Captured at a Client Device | |
CN110377708B (zh) | 一种多情景对话切换方法及装置 | |
CN116126354A (zh) | 模型部署方法、装置、电子设备以及存储介质 | |
CN113468857B (zh) | 风格转换模型的训练方法、装置、电子设备以及存储介质 | |
CN108053034B (zh) | 模型参数处理方法、装置、电子设备及存储介质 | |
CN112825152A (zh) | 深度学习模型的压缩方法、装置、设备及存储介质 | |
US20200242467A1 (en) | Calculation method and calculation device for sparse neural network, electronic device, computer readable storage medium, and computer program product | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN116186295B (zh) | 基于注意力的知识图谱链接预测方法、装置、设备及介质 | |
US20230273826A1 (en) | Neural network scheduling method and apparatus, computer device, and readable storage medium | |
CN114239760B (zh) | 多模态模型训练以及图像识别方法、装置、电子设备 | |
CN116306672A (zh) | 一种数据处理方法及其装置 | |
JP6633556B2 (ja) | 音響モデル学習装置、音声認識装置、音響モデル学習方法、音声認識方法、およびプログラム | |
CN114780910A (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 |