CN111932690A - 基于3d点云神经网络模型的剪枝方法及装置 - Google Patents
基于3d点云神经网络模型的剪枝方法及装置 Download PDFInfo
- Publication number
- CN111932690A CN111932690A CN202010976375.7A CN202010976375A CN111932690A CN 111932690 A CN111932690 A CN 111932690A CN 202010976375 A CN202010976375 A CN 202010976375A CN 111932690 A CN111932690 A CN 111932690A
- Authority
- CN
- China
- Prior art keywords
- point cloud
- neural network
- network model
- pruning
- batch normalization
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Image Analysis (AREA)
Abstract
本申请提供一种基于3D点云神经网络模型的剪枝方法及装置,涉及神经网络技术领域。其中,基于3D点云神经网络模型的剪枝方法包括:获取3D点云神经网络模型的批归一化层的缩放参数;基于符号函数对批归一化层的缩放参数施加正则惩罚,直至将批归一化层中预设数量的缩放参数惩罚至0为止;根据综合剪枝率和施加正则惩罚后的批归一化层的缩放参数对3D点云神经网络模型的卷积层中的通道进行剪枝,卷积层为批归一化层的上一层,卷积层中的通道与批归一化层的缩放参数一一对应。本申请技术方案可以实现3D点云神经网络模型的剪枝,进而对3D点云神经网络模型进行压缩和加速。
Description
技术领域
本申请涉及神经网络技术领域,尤其涉及一种基于三维(3-dimensional,3D)点云神经网络模型的剪枝方法及装置。
背景技术
随着自动驾驶技术的不断发展,对障碍物检测的精度要求也在不断提高。3D点云检测作为一种障碍物的检测方式,具体来说,就是将目标对象的3D点云数据输入到3D点云神经网络模型中,进而通过3D点云神经网络模型检测出目标对象是否为障碍物。由于3D点云数据是以点的形式记录目标对象的三维坐标、颜色、反射强度等信息,能够最大限度地对目标对象进行表征,因此,基于3D点云数据采用3D点云神经网络模型对障碍物进行检测,能够提高障碍物检测的准确性,进而提高自动驾驶的安全性。
在实际应用中,由于自动驾驶场景的实时性要求较高,而3D点云神经网络模型的计算量较大,存在计算延时的问题,无法满足自动驾驶场景的实时性要求,以及3D点云神经网络模型所占用的空间资源较多,对部署的移动设备的内存空间要求较高,无法广泛应用于各种移动设备。因此,对3D点云神经网络模型进行压缩和加速,进而减少3D点云神经网络模型对内存的消耗,以及提高3D点云神经网络模型的计算速度,显示尤为必要。一般来说,现有的压缩和加速3D点云神经网络模型的方法主要有以下两种:第1种:针对新的3D点云神经网络模型,通过知识蒸馏、紧凑网络设计等方式来构建小型的3D点云神经网络模型。第2种:针对已有的3D点云神经网络模型,通过张量分解、模型剪枝、模型量化等方式来压缩已有的3D点云神经网络模型。而在自动驾驶场景中,3D点云神经网络模型一般已构建完成,因此,主要采用对3D点云神经网络模型进行剪枝,以实现对3D点云神经网络模型进行压缩和加速。
然而,由于3D点云是不规则和无序的,因此,在3D点云神经网络模型中的哪里裁剪、裁剪多少,以实现对3D点云神经网络模型进行压缩和加速,成为值得研究的问题。
发明内容
本申请实施例的目的是提供一种基于3D点云神经网络模型的剪枝方法及装置,以对3D点云神经网络模型进行剪枝,进而实现对3D点云神经网络模型的压缩和加速。
为解决上述技术问题,本申请实施例提供如下技术方案:
本申请第一方面提供一种基于3D点云神经网络模型的剪枝方法,包括:
获取3D点云神经网络模型的批归一化层的缩放参数γ;
基于符号函数对所述批归一化层的缩放参数施加正则惩罚,直至将所述批归一化层中预设数量的缩放参数惩罚至0为止;
根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,所述卷积层为所述批归一化层的上一层,所述卷积层中的通道与批归一化层的缩放参数一一对应。
在本申请第一方面的一些变更实施方式中,在所述获取3D点云神经网络模型的批归一化层的缩放参数之前,还包括:
获取基于激光雷达生成的3D点云数据;
基于所述3D点云数据训练出所述3D点云神经网络模型,所述3D点云神经网络模型的精度高于预设精度。
在本申请第一方面的一些变更实施方式中,所述获取3D点云神经网络模型的批归一化层的缩放参数,包括:
判断所述3D点云神经网络模型的批归一化层的上一层是否为卷积层;
若是,则获取所述批归一化层的缩放参数。
在本申请第一方面的一些变更实施方式中,所述基于符号函数对所述批归一化层的缩放参数施加正则惩罚,包括:
在本申请第一方面的一些变更实施方式中,所述根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,包括:
根据所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数确定剪枝阈值;
根据所述剪枝阈值生成所述卷积层的通道的掩模;
将所述掩模与所述卷积层的通道相乘,得到剪枝后的所述3D点云神经网络模型。
在本申请第一方面的一些变更实施方式中,在所述得到剪枝后的所述3D点云神经网络模型之后,还包括:
以列表的形式保存剪枝后的所述3D点云神经网络模型,所述列表中包括剪枝后的所述3D点云神经网络模型中卷积层的通道的权重和数量。
在本申请第一方面的一些变更实施方式中,所述以列表的形式保存剪枝后的所述3D点云神经网络模型,包括:
判断剪枝后的所述3D点云神经网络模型的遍历索引与所述3D点云神经网络模型的批归一化层的标识是否相同;
若是,则按照所述掩模的非零位置将所述卷积层的通道的权重保存至所述列表;
若否,则将所述卷积层的所有通道的权重保存至所述列表。
在本申请第一方面的一些变更实施方式中,所述以列表的形式保存剪枝后的所述3D点云神经网络模型,包括:
将所述掩模中所有元素之和保存至所述列表。
在本申请第一方面的一些变更实施方式中,在所述根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝之后,还包括:
对剪枝后的所述3D点云神经网络模型进行训练;
判断训练后的所述3D点云神经网络模型是否达到预设精度;
若否,则调整所述综合剪枝率,根据调整后的所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝。
本申请第二方面提供一种基于3D点云神经网络模型的剪枝装置,包括:
获取模块,用于获取3D点云神经网络模型的批归一化层的缩放参数;
稀疏化模块,用于基于符号函数对所述批归一化层的缩放参数施加正则惩罚,直至将所述批归一化层中预设数量的缩放参数惩罚至0为止;
剪枝模块,用于根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,所述卷积层为所述批归一化层的上一层,所述卷积层中的通道与批归一化层的缩放参数一一对应。
在本申请第二方面的一些变更实施方式中,还包括:
训练模块,用于获取基于激光雷达生成的3D点云数据;基于所述3D点云数据训练出所述3D点云神经网络模型,所述3D点云神经网络模型的精度高于预设精度。
在本申请第二方面的一些变更实施方式中,所述获取模块,用于判断所述3D点云神经网络模型的批归一化层的上一层是否为卷积层;若是,则获取所述批归一化层的缩放参数。
在本申请第二方面的一些变更实施方式中,所述稀疏化模块,用于基于对所述批归一化层的缩放参数施加正则惩罚;其中,为施加正则惩罚后的所述批归一化层的缩放参数,为施加正则惩罚前的所述批归一化层的缩放参数, 为惩罚系数,为符号函数。
在本申请第二方面的一些变更实施方式中,所述剪枝模块,用于根据所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数确定剪枝阈值;根据所述剪枝阈值生成所述卷积层的通道的掩模;将所述掩模与所述卷积层的通道相乘,得到剪枝后的所述3D点云神经网络模型。
在本申请第二方面的一些变更实施方式中,还包括:
存储模块,用于以列表的形式保存剪枝后的所述3D点云神经网络模型,所述列表中包括剪枝后的所述3D点云神经网络模型中卷积层的通道的权重和数量。
在本申请第二方面的一些变更实施方式中,所述存储模块,用于判断剪枝后的所述3D点云神经网络模型的遍历索引与所述3D点云神经网络模型的批归一化层的标识是否相同;若是,则按照所述掩模的非零位置将所述卷积层的通道的权重保存至所述列表;若否,则将所述卷积层的所有通道的权重保存至所述列表。
在本申请第二方面的一些变更实施方式中,所述存储模块,用于将所述掩模中所有元素之和保存至所述列表。
在本申请第二方面的一些变更实施方式中,还包括:
精度恢复模块,用于对剪枝后的所述3D点云神经网络模型进行训练;判断训练后的所述3D点云神经网络模型是否达到预设精度;若否,则调整所述综合剪枝率,根据调整后的所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝。
本申请第三方面提供一种电子设备,包括:至少一个处理器;以及与所述处理器连接的至少一个存储器、总线;其中,所述处理器、存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面中的方法。
本申请第四方面提供一种计算机可读存储介质,包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面中的方法。
相较于现有技术,本申请第一方面提供的基于3D点云神经网络模型的剪枝方法,通过符号函数对3D点云神经网络模型的批归一化层的缩放参数施加正则惩罚,直至将3D点云神经网络模型的批归一化层中预设数量的缩放参数惩罚至0为止,再根据综合剪枝率和施加正则惩罚后的批归一化层的缩放参数就能够确定3D点云神经网络模型中需要裁剪的具体位置,即综合剪枝率所指的施加正则惩罚后的批归一化层的缩放参数一一对应于卷积层的通道。这样,就能够找到3D点云神经网络模型中具体的剪枝位置,进而对3D点云神经网络模型进行剪枝,以实现对3D点云神经网络模型的压缩和加速,减小3D点云神经网络模型占用的空间资源,以及提高3D点云神经网络模型的计算速度。
本申请第二方面提供的基于3D点云神经网络模型的剪枝装置,具有与本申请第一方面提供的基于3D点云神经网络模型的剪枝方法相同的有益效果,故此处不再赘述。
本申请第三方面提供的电子设备,具有与本申请第一方面提供的基于3D点云神经网络模型的剪枝方法相同的有益效果,故此处不再赘述。
本申请第四方面提供的计算机可读存储介质,具有与本申请第一方面提供的基于3D点云神经网络模型的剪枝方法相同的有益效果,故此处不再赘述。
附图说明
通过参考附图阅读下文的详细描述,本申请示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本申请的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
图1示意性地示出了基于3D点云神经网络模型的剪枝方法的流程图一;
图2示意性地示出了基于3D点云神经网络模型的剪枝方法的流程图二;
图3示意性地示出了对3D点云神经网络模型进行稀疏化训练的流程图;
图4示意性地示出了以列表的形式保存剪枝后的3D点云神经网络模型的流程图;
图5a示意性地示出了剪枝前的3D点云神经网络模型中主干网络的各个卷积层;
图5b示意性地示出了剪枝后的3D点云神经网络模型中主干网络的各个卷积层;
图6示意性地示出了基于3D点云神经网络模型的剪枝装置的结构图;
图7示意性地示出了电子设备的结构图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要注意的是,除非另有说明,本申请使用的技术术语或者科学术语应当为本申请所属领域技术人员所理解的通常意义。
在实际应用中,为了实现车辆的自动驾驶,往往需要在车辆中使用3D点云神经网络模型。而自动驾驶对于车辆的实时性要求较高,但3D点云神经网络模型由于计算速度慢,无法确保车辆在信息反馈中的实时性。有鉴于此,本申请实施例提供了一种基于3D点云神经网络模型的剪枝方法及装置,能够对3D点云神经网络模型进行剪枝,进而提高3D点云神经网络模型的计算速度,确保车辆在信息反馈中的实时性,提高车辆自动驾驶的安全性。并且,通过本申请实施例提供的基于3D点云神经网络模型的剪枝方法及装置,还能够减小3D点云神经网络模型所占用的空间资源,使其能够部署在更多的移动设备或嵌入式设备中,降低对部署的移动设备或嵌入式设备的配置要求。
需要说明的是:本申请实施例提供的剪枝方法及装置,能够对各种3D点云神经网络模型进行剪枝。例如:基于鸟瞰图(bird eye view,BEV)、稀疏卷积库等特征提取方式生成的3D点云神经网络模型。例如:PointPillar、VoxelNet、PV-RCNN等。
本申请实施例提供了一种基于3D点云神经网络模型的剪枝方法,图1示意性地示出了基于3D点云神经网络模型的剪枝方法的流程图一,参见图1所示,该方法可以包括:
S101:获取3D点云神经网络模型的批归一化层的缩放参数。
在3D点云神经网络模型中,若需要对3D点云神经网络模型中的通道进行裁剪,就需要有一个参考标准,3D点云神经网络模型的批归一化层的缩放参数就是这个参考标准。通过3D点云神经网络模型的批归一化层的缩放参数就能够知道需要对3D点云神经网络模型中批归一化层对应的卷积层中的哪些通道进行裁剪。
在获取3D点云神经网络模型的批归一化层的缩放参数之前,需要先找出目标归一化层。由于3D点云神经网络模型的主要结构依次为:卷积层、批归一化层、激活层,因此,目标归一化层就是卷积层后的批归一化层,需要裁剪的通道就是批归一化层上一层的卷积层中的通道。鉴于此,可以包括但不限于以下两种方式确定出目标归一化层。
方式一:先找出批归一化层,再判断该批归一化层的上一层是否为卷积层,若是,则确定该批归一化层为目标批归一化层,若否,则确定该批归一化层不是目标批归一化层。具体的,在3D点云神经网络模型中寻找批归一化层,可以采用现有技术,此处不再赘述。
方式二:先找出卷积层,再将该卷积层的下一层的批归一化层作为目标批归一化层。具体的,在3D点云神经网络模型中寻找卷积层,可以采用现有技术,此处不再赘述。
S102:基于符号函数对批归一化层的缩放参数施加正则惩罚,直至将批归一化层中预设数量的缩放参数惩罚至0为止。
也就是说,通过符号函数对3D点云神经网络模型的批归一化层的缩放参数进行运算,使得批归一化层中预设数量的缩放参数变为0,以对3D点云神经网络模型的批归一化层的缩放参数进行稀疏化训练,即将卷积层中预设数量的通道的功能转移至卷积层中的其它通道,这样后面就可以对预设数量的通道对应的卷积层中的通道进行剪枝了。
具体来说,可以将符号函数分别代入到3D点云神经网络模型的批归一化层的每个缩放参数中分别进行运算,经过运算后,批归一化层会相应得到多个新的缩放参数。在多个新的缩放参数中,大部分新的缩放参数被惩罚至0或者接近0。这样,就实现了批归一化层的稀疏化训练,使得卷积层中某些通道的功能被转移。
在具体实施过程中,可以采用符号函数结合惩罚系数的形式对批归一化层的缩放参数施加正则惩罚。而对于符号函数与惩罚系数的具体结合形式以及惩罚系数的具体数值,可以根据实际需要进行设置,此处不做限定。
S103:根据综合剪枝率和施加正则惩罚后的批归一化层的缩放参数对3D点云神经网络模型的卷积层中的通道进行剪枝。
由于3D点云神经网络模型的主要结构依次为:卷积层、批归一化层、激活层,即卷积层为归一化层的上一层,而卷积层中各节点与批归一化层中各节点是通过通道连接的,因此,卷积层中的通道与归一化层中的缩放参数是一一对应的。可见,在确定了批归一化层中需要裁剪的缩放参数后,就能够相应的确定卷积层中需要裁剪的通道了。通过对卷积层中相应的通道的裁剪,实现对3D点云神经网络模型的剪枝。
综合剪枝率是指在3D点云神经网络模型的卷积层中需要裁剪的通道的数量占总通道的数量的比例。通过综合剪枝率能够确定施加正则惩罚后的批归一化层的缩放参数中哪些参数是需要的,哪些参数是不需要的。本领域公知的是:参数值越小,越不被需要。即在综合剪枝率的限制下,批归一化层中数值小的缩放参数对应的卷积层的通道需要被裁剪。
示例性的,假设3D点云神经网络模型的批归一化层中存在缩放参数A、缩放参数B、缩放参数C、缩放参数D、缩放参数E、缩放参数F、缩放参数G、缩放参数H、缩放参数I、缩放参数J,施加正则惩罚后各缩放参数依次为0、0、0.2、0.9、2、2.1、1.3、0、0.01、0.03,批归一化层对应的卷积层中对应存在通道a、通道b、通道c、通道d、通道e、通道f、通道g、通道h、通道i、通道j,综合剪枝率为50%。那么,按照综合剪枝率50%,就需要裁剪卷积层中半数的通道。首先,根据综合剪枝率50%,能够确定参数0、0、0、0.01、0.03;然后,确定归一化层中的缩放参数A、缩放参数B、缩放参数H、缩放参数I、缩放参数J;最后,确定卷积层中的通道a、通道b、通道h、通道i、通道j,进而将卷积层中的通道a、通道b、通道h、通道i、通道j裁剪。
在实际应用中,综合剪枝率可以通过以往的经验得到。也就是说,在以往对3D点云神经网络模型进行剪枝时,使用综合剪枝率X既能够对3D点云神经网络模型进行压缩和加速,又不会降低3D点云神经网络模型的精度,那么,就选择综合剪枝率X作为本申请实施例中的综合剪枝率。当然,还可以根据采用综合剪枝率X对3D点云神经网络模型的具体剪枝结果对综合剪枝率X进行调整,直至3D点云神经网络模型的剪枝结果符合预期的压缩要求、加速要求以及精度要求。
由上述内容可知,本申请实施例提供的基于3D点云神经网络模型的剪枝方法,通过符号函数对3D点云神经网络模型的批归一化层的缩放参数施加正则惩罚,直至将3D点云神经网络模型的批归一化层中预设数量的缩放参数惩罚至0为止,再根据综合剪枝率和施加正则惩罚后的批归一化层的缩放参数就能够确定3D点云神经网络模型中需要裁剪的具体位置,即综合剪枝率所指的施加正则惩罚后的批归一化层的缩放参数一一对应于卷积层的通道。这样,就能够找到3D点云神经网络模型中具体的剪枝位置,进而对3D点云神经网络模型进行剪枝,以实现对3D点云神经网络模型的压缩和加速,减小3D点云神经网络模型占用的空间资源,以及提高3D点云神经网络模型的计算速度。
进一步地,作为对图1所示方法的细化和扩展,本申请实施例还提供了一种基于3D点云神经网络模型的剪枝方法。图2示意性地示出了基于3D点云神经网络模型的剪枝方法的流程图二,参见图2所示,该方法可以包括:
S201:训练出3D点云神经网络模型,使得3D点云神经网络模型的精度高于预设精度。
由于之后需要对3D点云神经网络模型进行剪枝,并且需要验证剪枝后的3D点云神经网络模型的计算速度是否会所有提高,以及精度是否不会下降,因此,需要先提供一个高精度的3D点云神经网络模型。
具体来说,S201可以包括:
S2011:获取基于激光雷达生成的3D点云数据;
S2012:基于3D点云数据训练出3D点云神经网络模型。
其中,训练出的3D点云神经网络模型的精度高于预设精度。而对于预设精度的具体数值,此处不做限定。
当然,也可以直接获取现有的高精度的3D点云神经网络模型。对于高精度的3D点云神经网络模型的具体获取方式,此处不做限定。
S202:对3D点云神经网络模型进行稀疏化训练。
也就是说,将3D点云神经网络模型中部分通道的功能进行转移。图3示意性地示出了对3D点云神经网络模型进行稀疏化训练的流程图,参见图3所示,S202可以包括:
S2021:遍历3D点云神经网络模型的层列表;
S2022:判断当前层是否为柱特征网络层,若是,则跳过当前层,继续执行S2021;若否,则执行S2023;
由于在对3D点云神经网络模型进行稀疏化训练的过程中需要跳过3D点云神经网络模型的特征映射部分,针对主干卷积网络以及检测头网络的部分的批归一化层的缩放参数进行稀疏化训练,因此,需要跳过柱特征网络层。
S2023:判断当前层的上一层是否为卷积层,若是,则确定当前层为批归一化层,执行S2024;若否,则确定当前层不是批归一化层,执行S2026;
一般而言,卷积层的下一层为批归一化层,故若当前层的上一层为卷积层,则确定当前层为批归一化层。当然,还可以通过其它方式确定当前层是否为批归一化层,此处不做限定。
S2024:获取批归一化层的缩放参数;
S2025:基于
对批归一化层的缩放参数施加正则惩罚;
S2026:判断批归一化层是否为最后一层,若是,则结束训练;若否,则继续执行S2021。
由于3D点云神经网络模型中并不只存在一个归一化层,可能存在有多个批归一化层,并且,需要对每一个归一化层的缩放参数都进行稀疏化训练,因此,需要判断当前的批归一化层是否为所有的批归一化层中的最后一层,确保每一个批归一化层的缩放参数都进行了稀疏化训练。
S203:设定综合剪枝率η;
综合剪枝率即全局剪枝率。由于3D点云神经网络模型中具有多个卷积层,每个卷积层中包含有多个通道,而综合剪枝率表示的就是所有卷积层中需要裁剪的通道的数量占所有卷积层中通道的总数量的比例。
S204:根据综合剪枝率对稀疏化训练后的3D点云神经网络模型剪枝;
具体来说,S204可以包括:
S2041:根据综合剪枝率和稀疏化训练后的批归一化层的缩放参数确定剪枝阈值θ;
首先,可以将稀疏化训练后的批归一化层的缩放参数进行排序;然后,根据综合剪枝率按照从小到大的顺序在上述排序中找出剪枝阈值。
示例性的,假设稀疏化训练后的批归一化层的缩放参数为1、2、3、4、5、6,综合剪枝率为50%。那么,剪枝阈值可以是4。小于4的参数对应的卷积层的通道会被裁剪。剪枝阈值也可以是3,小于或等于3的参数对应的卷积层的通道会被裁剪。剪枝阈值也可以是3.5,小于3.5的参数对应的卷积层的通道会被裁剪。当然,剪枝阈值还可以是其它具体的数值,例如:3.3、3.6等,对于剪枝阈值的具体数值,此处不做限定,只要能够在满足综合剪枝率的情况下将批归一化层的缩放参数分为两部分即可。
S2042:根据剪枝阈值生成卷积层的通道的掩模MASK;
具体的,可以将卷积层的各个通道对应的参数与剪枝阈值进行比较,根据剪枝阈值生成需要剪枝的卷积层的通道大小的掩模。
S2043:将掩模与卷积层的通道相乘,得到剪枝后的3D点云神经网络模型。
至此,3D点云神经网络模型的剪枝就基本完成了。接下来,还需要对剪枝后的3D点云神经网络模型进行保存,以便后续重新加载。
S205:以列表LIST的形式保存剪枝后的3D点云神经网络模型;
其中,列表中包括剪枝后的3D点云神经网络模型中卷积层的通道的权重和数量。
具体的,图4示意性地示出了以列表的形式保存剪枝后的3D点云神经网络模型的流程图,参见图4所示,S205可以包括:
S2051:遍历3D点云神经网络模型,获取批归一化层的标识;
这里遍历的3D点云神经网络模型是剪枝前的3D点云神经网络模型,这里的批归一化层也是剪枝前的批归一化层,这里的标识即身份标识号(identity document,ID)。
这里需要说明的是:S2051可以在训练出3D点云神经网络模型后执行,也可以在对3D点云神经网络模型进行剪枝后执行,对于S2051的执行顺序,此处不做限定。
S2052:遍历剪枝后的3D点云神经网络模型,获取遍历索引i;
S2053:判断剪枝后的3D点云神经网络模型的遍历索引与3D点云神经网络模型的批归一化层的标识是否相同;若是,则执行S2054;若否,则执行S2055;
S2054:按照掩模的非零位置将卷积层的通道的权重保存至列表;
S2055:将卷积层的所有通道的权重保存至列表;
由于3D点云神经网络模型中存在有多个卷积层,通过判断剪枝后的3D点云神经网络模型的遍历索引与3D点云神经网络模型的批归一化层的标识是否相同,若相同,说明对应的卷积层中的通道并没有被完全裁剪掉,那么就按照掩模的非零位置将卷积层的通道的权重保存至列表,若不同,说明对应的卷积层中的通道全部被裁剪掉,那么,就将该卷积层的所有通道的权重保存至列表。
S2056:判断是否到达剪枝后的3D点云神经网络模型的最后一层;若是,则保存列表;若否,说明还存在有遍历索引与标识未进行对比,则再次执行S2053。
具体的,S205还可以包括:
S2057:将掩模中所有元素之和保存至列表。
由于3D点云神经网络模型的每一个卷积层都对应有一个掩模,因此,需要将每一个卷积层的掩模中所有的元素求和,进而保存成列表。
这里需要说明的是:S2051-S2055与S2057可以同时执行,S2057也可以在S2055之后执行,对于S2051-S2055与S2057的执行顺序,此处不做限定。在执行完S2051-S2055与S2057后,再执行S2056。
当然,也可以直接将剪枝后的3D点云神经网络模型进行保存。对于保存剪枝后的3D点云神经网络模型的具体方式,此处不做限定。
S206:对剪枝后的3D点云神经网络模型进行训练;
由于3D点云神经网络模型经过剪枝后,其精度会有所下降,故需要对3D点云神经网络模型再次进行训练,恢复其精度。
S207:判断训练后的所述3D点云神经网络模型是否达到预设精度;若是,则结束剪枝;若否,则执行S203,即调整综合剪枝率,根据调整后的综合剪枝率对稀疏化训练后的3D点云神经网络模型重新剪枝,直到S207的判断结果为是。
这里需要说明的是:S206-S207可以在S204后执行,S206-S207也可以在S205后执行,对于S206-S207的执行顺序,此处不做限定。当S206-S207也可以在S205后执行时,在执行S206之前,需要先根据列表加载剪枝后的3D点云神经网络模型。
图5a示意性地示出了剪枝前的3D点云神经网络模型中主干网络的各个卷积层,参见图5a所示,各个卷积层中的通道结构完整,通道数量庞大,含有大量的冗余计算。图5b示意性地示出了剪枝后的3D点云神经网络模型中主干网络的各个卷积层,参见图5b所示,卷积层1、卷积层3中的部分通道被裁剪,通道数量有所减少,此时的计算量也能够有效降低。
采用本申请实施例提供的剪枝方法对PointPillar 3D点云神经网络模型进行剪枝,通过剪枝结果可以发现,在剪枝率为80%的情况下,检测精度基本保持不变,模型大小由原来的32MB缩小到16MB左右,在NVIDIA 1080Ti环境下可加速10ms左右。可见,本申请实施例提供的剪枝方法在不改变模型的精度的情况下,能够对模型进行有效压缩,并且还能够提高模型的计算速度。
由上述内容可知,本申请实施例提供的基于3D点云神经网络模型的剪枝方法,首先,训练出3D点云神经网络模型;然后,基于对3D点云神经网络模型的批归一化层的缩放参数进行稀疏化训练;接着,根据综合剪枝率对稀疏化训练后的3D点云神经网络模型剪枝;再接着,以列表LIST的形式保存剪枝后的3D点云神经网络模型;最后,对剪枝后的3D点云神经网络模型进行训练,通过调整综合剪枝率,使其恢复预设精度。这样,在不损失3D点云神经网络模型的精度的情况下,就能够对3D点云神经网络模型进行剪枝,以实现对3D点云神经网络模型的压缩和加速,减小3D点云神经网络模型占用的空间资源,以及提高3D点云神经网络模型的计算速度。
基于同一发明构思,作为对上述方法的实现,本申请实施例还提供了一种基于3D点云神经网络模型的剪枝装置。图6示意性地示出了基于3D点云神经网络模型的剪枝装置的结构图,参见图6所示,该装置可以包括:
获取模块601,用于获取3D点云神经网络模型的批归一化层的缩放参数;
稀疏化模块602,用于基于符号函数对所述批归一化层的缩放参数施加正则惩罚,直至将所述批归一化层中预设数量的缩放参数惩罚至0为止;
剪枝模块603,用于根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,所述卷积层为所述批归一化层的上一层,所述卷积层中的通道与批归一化层的缩放参数一一对应。
基于前述实施例,还包括:训练模块,用于获取基于激光雷达生成的3D点云数据;基于所述3D点云数据训练出所述3D点云神经网络模型,所述3D点云神经网络模型的精度高于预设精度。
基于前述实施例,所述获取模块,用于判断所述3D点云神经网络模型的批归一化层的上一层是否为卷积层;若是,则获取所述批归一化层的缩放参数。
基于前述实施例,所述稀疏化模块,用于基于对所述批归一化层的缩放参数施加正则惩罚;其中,为施加正则惩罚后的所述批归一化层的缩放参数, 为施加正则惩罚前的所述批归一化层的缩放参数,为惩罚系数,为符号函数。
基于前述实施例,所述剪枝模块,用于根据所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数确定剪枝阈值;根据所述剪枝阈值生成所述卷积层的通道的掩模;将所述掩模与所述卷积层的通道相乘,得到剪枝后的所述3D点云神经网络模型。
基于前述实施例,还包括:存储模块,用于以列表的形式保存剪枝后的所述3D点云神经网络模型,所述列表中包括剪枝后的所述3D点云神经网络模型中卷积层的通道的权重和数量。
基于前述实施例,所述存储模块,用于判断剪枝后的所述3D点云神经网络模型的遍历索引与所述3D点云神经网络模型的批归一化层的标识是否相同;若是,则按照所述掩模的非零位置将所述卷积层的通道的权重保存至所述列表;若否,则将所述卷积层的所有通道的权重保存至所述列表。
基于前述实施例,所述存储模块,用于将所述掩模中所有元素之和保存至所述列表。
基于前述实施例,还包括:精度恢复模块,用于对剪枝后的所述3D点云神经网络模型进行训练;判断训练后的所述3D点云神经网络模型是否达到预设精度;若否,则调整所述综合剪枝率,根据调整后的所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝。
这里需要指出的是:以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于同一发明构思,作为对上述方法的实现,本申请实施例还提供了一种电子设备。图7示意性地示出了电子设备的结构图,参见图7所示,该电子设备可以包括:至少一个处理器701;以及与处理器701连接的至少一个存储器702、总线703;其中,处理器701、存储器702通过总线703完成相互间的通信;处理器701用于调用存储器702中的程序指令,以执行上述一个或多个实施例中的方法。
这里需要指出的是:以上电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请电子设备实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于同一发明构思,作为对上述方法的实现,本申请实施例还提供了一种计算机可读存储介质。该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述一个或多个实施例中的方法。
这里需要指出的是:以上存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种基于3D点云神经网络模型的剪枝方法,其特征在于,包括:
获取3D点云神经网络模型的批归一化层的缩放参数;
基于符号函数对所述批归一化层的缩放参数施加正则惩罚,直至将所述批归一化层中预设数量的缩放参数惩罚至0为止;
根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,所述卷积层为所述批归一化层的上一层,所述卷积层中的通道与批归一化层的缩放参数一一对应。
2.根据权利要求1所述的方法,其特征在于,在所述获取3D点云神经网络模型的批归一化层的缩放参数之前,还包括:
获取基于激光雷达生成的3D点云数据;
基于所述3D点云数据训练出所述3D点云神经网络模型,所述3D点云神经网络模型的精度高于预设精度。
3.根据权利要求1所述的方法,其特征在于,所述获取3D点云神经网络模型的批归一化层的缩放参数,包括:
判断所述3D点云神经网络模型的批归一化层的上一层是否为卷积层;
若是,则获取所述批归一化层的缩放参数。
5.根据权利要求1所述的方法,其特征在于,所述根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,包括:
根据所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数确定剪枝阈值;
根据所述剪枝阈值生成所述卷积层的通道的掩模;
将所述掩模与所述卷积层的通道相乘,得到剪枝后的所述3D点云神经网络模型。
6.根据权利要求5所述的方法,其特征在于,在所述得到剪枝后的所述3D点云神经网络模型之后,还包括:
以列表的形式保存剪枝后的所述3D点云神经网络模型,所述列表中包括剪枝后的所述3D点云神经网络模型中卷积层的通道的权重和数量。
7.根据权利要求6所述的方法,其特征在于,所述以列表的形式保存剪枝后的所述3D点云神经网络模型,包括:
判断剪枝后的所述3D点云神经网络模型的遍历索引与所述3D点云神经网络模型的批归一化层的标识是否相同;
若是,则按照所述掩模的非零位置将所述卷积层的通道的权重保存至所述列表;
若否,则将所述卷积层的所有通道的权重保存至所述列表。
8.根据权利要求6所述的方法,其特征在于,所述以列表的形式保存剪枝后的所述3D点云神经网络模型,包括:
将所述掩模中所有元素之和保存至所述列表。
9.根据权利要求1至8中任一项所述的方法,其特征在于,在所述根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝之后,还包括:
对剪枝后的所述3D点云神经网络模型进行训练;
判断训练后的所述3D点云神经网络模型是否达到预设精度;
若否,则调整所述综合剪枝率,根据调整后的所述综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝。
10.一种基于3D点云神经网络模型的剪枝装置,其特征在于,包括:
获取模块,用于获取3D点云神经网络模型的批归一化层的缩放参数;
稀疏化模块,用于基于符号函数对所述批归一化层的缩放参数施加正则惩罚,直至将所述批归一化层中预设数量的缩放参数惩罚至0为止;
剪枝模块,用于根据综合剪枝率和施加正则惩罚后的所述批归一化层的缩放参数对所述3D点云神经网络模型的卷积层中的通道进行剪枝,所述卷积层为所述批归一化层的上一层,所述卷积层中的通道与批归一化层的缩放参数一一对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010976375.7A CN111932690B (zh) | 2020-09-17 | 2020-09-17 | 基于3d点云神经网络模型的剪枝方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010976375.7A CN111932690B (zh) | 2020-09-17 | 2020-09-17 | 基于3d点云神经网络模型的剪枝方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111932690A true CN111932690A (zh) | 2020-11-13 |
CN111932690B CN111932690B (zh) | 2022-02-22 |
Family
ID=73335295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010976375.7A Active CN111932690B (zh) | 2020-09-17 | 2020-09-17 | 基于3d点云神经网络模型的剪枝方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111932690B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115169556A (zh) * | 2022-07-25 | 2022-10-11 | 美的集团(上海)有限公司 | 模型剪枝方法及装置 |
WO2023285996A1 (en) * | 2021-07-14 | 2023-01-19 | Sony Group Corporation | Task-driven machine learning-based representation and compression of point cloud geometry |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122112A1 (en) * | 2016-11-03 | 2019-04-25 | Vicarious Fpc, Inc. | System and method for teaching compositionality to convolutional neural networks |
CN110622178A (zh) * | 2017-11-15 | 2019-12-27 | 谷歌有限责任公司 | 学习神经网络结构 |
CN111461322A (zh) * | 2020-03-13 | 2020-07-28 | 中国科学院计算技术研究所 | 一种深度神经网络模型压缩方法 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
-
2020
- 2020-09-17 CN CN202010976375.7A patent/CN111932690B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190122112A1 (en) * | 2016-11-03 | 2019-04-25 | Vicarious Fpc, Inc. | System and method for teaching compositionality to convolutional neural networks |
CN110622178A (zh) * | 2017-11-15 | 2019-12-27 | 谷歌有限责任公司 | 学习神经网络结构 |
CN111461322A (zh) * | 2020-03-13 | 2020-07-28 | 中国科学院计算技术研究所 | 一种深度神经网络模型压缩方法 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023285996A1 (en) * | 2021-07-14 | 2023-01-19 | Sony Group Corporation | Task-driven machine learning-based representation and compression of point cloud geometry |
CN115169556A (zh) * | 2022-07-25 | 2022-10-11 | 美的集团(上海)有限公司 | 模型剪枝方法及装置 |
CN115169556B (zh) * | 2022-07-25 | 2023-08-04 | 美的集团(上海)有限公司 | 模型剪枝方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111932690B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108764471B (zh) | 基于特征冗余分析的神经网络跨层剪枝方法 | |
CN111932690B (zh) | 基于3d点云神经网络模型的剪枝方法及装置 | |
CN111144561B (zh) | 一种神经网络模型确定方法及装置 | |
CN112052951A (zh) | 一种剪枝神经网络方法、系统、设备及可读存储介质 | |
CN110097187A (zh) | 一种基于激活-熵权重剪枝的cnn模型压缩方法 | |
CN113408561A (zh) | 模型生成方法、目标检测方法、装置、设备及存储介质 | |
CN111667068A (zh) | 一种基于掩码的深度图卷积神经网络模型剪枝方法与系统 | |
CN110223515A (zh) | 一种车辆轨迹生成方法 | |
CN115600650A (zh) | 基于强化学习的自动化卷积神经网络量化剪枝方法、设备和存储介质 | |
CN115829024B (zh) | 一种模型训练方法、装置、设备及存储介质 | |
CN111126595A (zh) | 一种神经网络的模型压缩的方法和设备 | |
CN112861996A (zh) | 深度神经网络模型压缩方法及装置、电子设备、存储介质 | |
CN111488990A (zh) | 一种基于性能感知的模型裁剪方法、装置、设备和介质 | |
CN115640851A (zh) | 一种适用于测试仪器的神经网络高效推理方法 | |
CN116959477B (zh) | 一种基于卷积神经网络的噪声源分类的方法及装置 | |
CN113128664A (zh) | 神经网络压缩方法、装置、电子设备及存储介质 | |
CN112132062B (zh) | 一种基于剪枝压缩神经网络的遥感图像分类方法 | |
CN112613604A (zh) | 神经网络的量化方法及装置 | |
CN111027693A (zh) | 一种基于去权重剪枝的神经网络压缩方法及系统 | |
CN116051961A (zh) | 一种目标检测模型训练方法、目标检测方法、设备及介质 | |
CN113033804B (zh) | 一种面向遥感图像的卷积神经网络压缩方法 | |
CN114372565A (zh) | 一种用于边缘设备的目标检测网络压缩方法 | |
CN114581879A (zh) | 图像识别方法、装置、电子设备以及存储介质 | |
CN113505804A (zh) | 一种基于压缩深度神经网络的图像识别方法及系统 | |
CN112905792A (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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Pruning method and device based on 3D point cloud neural network model Effective date of registration: 20221125 Granted publication date: 20220222 Pledgee: Haidian Beijing science and technology enterprise financing Company limited by guarantee Pledgor: BEIJING ZHUXIAN TECHNOLOGY Co.,Ltd. Registration number: Y2022980023281 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |