Layer-Wise Data-Free CNN Compression

2023-11-10 16:40

本文主要是介绍Layer-Wise Data-Free CNN Compression,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Layer-Wise Data-Free CNN Compression

我们的无数据网络压缩方法从一个训练好的网络开始,创建一个具有相同体系结构的压缩网络。这种方法在概念上类似于知识蒸馏[23],即使用预先训练好的“教师”网络来训练“学生”网络。但是知识蒸馏需要训练数据。以前的方法都是通过生成数据来解决这个问题,比如Adversarial Knowledge Distillation(AKD)[6]和Deep Inversion(DI)[51]。然而,这些方法的计算成本很高。

在这里插入图片描述

图1。我们的方法概述。我们首先在教师和学生身上进行BatchNorm fusion和Assumption-Free Cross-Layer Equalization(AFCLE,第3.2节)。然后,我们分别训练学生的每一层。我们使用前一层(第3.1节)的BatchNorm统计数据生成数据,然后使用这些数据优化压缩的学生网络以匹配教师。

我们采用图1所示的更简单的方法。我们将学生的每一层视为教师中相应层的压缩近似值。只要每一层的近似值是准确的,整体的学生网络就会产生与教师类似的输出。这个这种方法的计算效率远高于其他生成方法,因为我们的方法不需要训练输入图像,就可以在网络的每一层产生良好的训练信号。

在这里插入图片描述

图2。MobileNetV1分析了我们的方法和对抗性知识提取(AKD)的前传次数和训练精度[6]。深度反演[51](未显示)比AKD需要更多的FLOPs ,而且精度较低。

相反,我们为每个层分别生成输入,这不需要生成真实的图像。我们的方法比AKD[6]少14倍的触发器,比DI[51]少450倍的FLOPs (图2),只经过几百次迭代就收敛了。

我们的第一个挑战在于生成用于训练教师层的压缩近似值的数据。我们的第二个挑战在于对网络进行预处理以实现更有效的压缩。我们将在以下小节中讨论这些问题。

3.1. LayerWise Data Generation

我们描述了layer-wise网络输入的方法。我们假设网络由包含卷积的块组成,然后是BatchNorm[25],然后是激活。让 B i \mathcal B_i Bi代表与索引i块相关联的BatchNorm层。 B i \mathcal B_i Bi的均值和标准差为 μ B i , σ B i \mu_{\mathcal B_i},\sigma_{\mathcal B_i} μBi,σBi,然后应用权值为 γ B i \gamma_{\mathcal B_i} γBi和bias为 β B i \beta_{\mathcal B_i} βBi的的通道仿射变换。因此,我们知道BatchNorm的输出通道的标准偏差是 γ B i \gamma_{\mathcal B_i} γBi,均值为 β B i \beta_{\mathcal B_i} βBi

我们利用这些信息生成layer-wise输入。设 C i \mathcal C_i Ci表示网络块i中的卷积层, f i f_i fi表示块i中的激活。另外, h ( ⋅ ) h(\cdot) h()代表h层对应输入的输出。考虑块i从由集合K索引的块中接受多个输入张量的情况。让 x B i − 1 x_{\mathcal B_{i-1}} xBi1代表用真实数据训练的训练batch中BatchNorm层 B i − 1 \mathcal B_{i-1} Bi1的输入。假设这些tensors由加法函数组合而成(如残差网络[22]),卷积Ci的输入xCi为

在这里插入图片描述

加法外的其他组合函数也如此。

在没有数据的训练中,我们无法访问 x B i − 1 x_{\mathcal B_{i-1}} xBi1,所以我们估计它。用 G c i ( ⋅ ) \mathcal G_{c_i}(\cdot) Gci()代表用于生成训练 C i \mathcal C_i Ci层输入的函数,利用我们上面关于BatchNorm层的输出统计的观察,我们估计

在这里插入图片描述

其中 N ( μ , σ ) \mathcal N(\mu,\sigma) N(μ,σ)代表高斯分布。在第一个卷积层的情况下,我们从 N ( 0 , 1 ) \mathcal N(0,1) N(0,1)生成数据。我们忽略了其他层(如平均池)对统计数据的影响。

我们在第3.3节和第3.4节中描述了如何使用生成的数据来计算学生网络的层。但首先,我们描述了我们的方法的另一个组成部分,该方法旨在对网络进行预处理以改进最终结果。

3.2. AssumptionFree CrossLayer Equalization

我们描述了均衡(equalizing)网络层的方法。为了便于描述, W ∈ R c o , c i W\in \mathbb R^{c_o,c_i} WRco,ci代表一个具有 c o c_o co输出维度和 c i c_i ci输入维度的矩阵。

我们的方法将无数据网络压缩问题分解为压缩单个层的子问题。有两个问题使从压缩后的单个层组装压缩网络的问题变得复杂。

第一个问题是关于BN层,BN层具有参数 μ , σ , γ , β \mu,\sigma,\gamma,\beta μ,σ,γ,β。给定一个偏置为b的线性层W,线性层的输出,后跟BatchNorm

在这里插入图片描述

⨀ \bigodot 代表elementwise multiplication。如果W的某一行c乘以比例因子 α \alpha α,如果b和 μ \mu μ的第c个元素乘以 α \alpha α,如果 γ \gamma γ的第c个元素乘以标量因子 1 / α 1/\alpha 1/α,则函数f(x)保持不变。因此,W的权重的相对重要性取决于BatchNorm参数的值。在修剪或量化W时,这是有问题的,因为我们希望权重值的大小能反映其重要性。BatchNorm层内隐藏的比例因子可以防止这种情况的发生。为了解决这个问题,我们融合BN层的参数 μ , σ , γ , β \mu,\sigma,\gamma,\beta μ,σ,γ,β到之前的线性层。以使BatchNorm参数对权重大小的有效影响得到考虑。一旦这种融合发生,BatchNorm可以被忽略。公式3中使用的BatchNorm统计量必须在该融合步骤之前收集。它们将保持有效,因为BatchNorm参数的变化会被W和b的变化所补偿。

将无数据网络压缩分解为layer-wise压缩子问题的第二个复杂性是,各层的权重相对大小可能不一致。考虑一对具有权重 W 1 W_1 W1 W 2 W_2 W2以及偏置 b 1 b_1 b1 b 2 b_2 b2的线性层的输出。假设网络使用ReLU激活[1],这样层对的输出是

在这里插入图片描述

如果 W 2 W_2 W2的第c行乘上一个缩放因子 α \alpha α,且如果 b 2 b_2 b2对应的第c个元素乘上 α \alpha α,且 W 1 W_1 W1相对应的列乘上 1 / α 1/\alpha 1/α,输出 f ( x ) f(x) f(x)保持不变。换句话说,层间权重的相对重要性在先验上是不一致的。有相似重要性的权重需要在整个网络中具有相似的值,否则一些层将被修剪得太重,而一些层将被修剪得不够。不一致也会导致次优的量化范围,如[38]所述。

为了解决这种缩放不一致的问题,我们采用了一种方法,我们称之为Assumption-Free Cross-Layer Equalization(AFCLE),它是DFQ[38]中描述的Cross-Layer Equalization方法的扩展。对于每一个权重为 W j ∈ R c o × c i W_j\in\mathbb R^{c_o\times c_i} WjRco×ci,偏置为 b j ∈ R c o b_j\in\mathbb R^{c_o} bjRco的线性层 L j \mathcal L_j Lj,我们把一对向量 v j i ∈ R c j , v j o ∈ R c o v_j^i\in\mathbf R^{c_j},v_j^o\in\mathbf R^{c_o} vjiRcj,vjoRco联系起来。(扩展到卷积层是同样的)这些向量将在AFCLE中使用,之后将保持固定。我们计算线性层的输出为
在这里插入图片描述

在AFCLE之前, v j i a n d v j o v_j^i\ and\ v_j^o vji and vjo的所有元素初始化为1。设 W 2 W_2 W2的第c行 W 2 c W^c_2 W2c,和 W 1 W_1 W1对应的列 W 1 c W_1^c W1c。我们计算比例因子 s c s_c sc,并将网络更新为
在这里插入图片描述

在这里插入图片描述

这篇关于Layer-Wise Data-Free CNN Compression的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/383952

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

CentOS下mysql数据库data目录迁移

https://my.oschina.net/u/873762/blog/180388        公司新上线一个资讯网站,独立主机,raid5,lamp架构。由于资讯网是面向小行业,初步估计一两年内访问量压力不大,故,在做服务器系统搭建的时候,只是简单分出一个独立的data区作为数据库和网站程序的专区,其他按照linux的默认分区。apache,mysql,php均使用yum安装(也尝试

使用Spring Boot集成Spring Data JPA和单例模式构建库存管理系统

引言 在企业级应用开发中,数据库操作是非常重要的一环。Spring Data JPA提供了一种简化的方式来进行数据库交互,它使得开发者无需编写复杂的JPA代码就可以完成常见的CRUD操作。此外,设计模式如单例模式可以帮助我们更好地管理和控制对象的创建过程,从而提高系统的性能和可维护性。本文将展示如何结合Spring Boot、Spring Data JPA以及单例模式来构建一个基本的库存管理系统

深度学习实战:如何利用CNN实现人脸识别考勤系统

1. 何为CNN及其在人脸识别中的应用 卷积神经网络(CNN)是深度学习中的核心技术之一,擅长处理图像数据。CNN通过卷积层提取图像的局部特征,在人脸识别领域尤其适用。CNN的多个层次可以逐步提取面部的特征,最终实现精确的身份识别。对于考勤系统而言,CNN可以自动从摄像头捕捉的视频流中检测并识别出员工的面部。 我们在该项目中采用了 RetinaFace 模型,它基于CNN的结构实现高效、精准的

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

[Linux Kernel Block Layer第一篇] block layer架构设计

目录 1. single queue架构 2. multi-queue架构(blk-mq)  3. 问题 随着SSD快速存储设备的发展,内核社区越发发现,存储的性能瓶颈从硬件存储设备转移到了内核block layer,主要因为当时的内核block layer是single hw queue的架构,导致cpu锁竞争问题严重,本文先提纲挈领的介绍内核block layer的架构演进,然

SIGMOD-24概览Part7: Industry Session (Graph Data Management)

👇BG3: A Cost Effective and I/O Efficient Graph Database in ByteDance 🏛机构:字节 ➡️领域: Information systems → Data management systemsStorage management 📚摘要:介绍了字节新提出的ByteGraph 3.0(BG3)模型,用来处理大规模图结构数据 背景

java.sql.SQLException: No data found

Java代码如下: package com.accord.utils;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import

如何将卷积神经网络(CNN)应用于医学图像分析:从分类到分割和检测的实用指南

引言 在现代医疗领域,医学图像已经成为疾病诊断和治疗规划的重要工具。医学图像的类型繁多,包括但不限于X射线、CT(计算机断层扫描)、MRI(磁共振成像)和超声图像。这些图像提供了对身体内部结构的详细视图,有助于医生在进行准确诊断和制定个性化治疗方案时获取关键的信息。 1. 医学图像分析的挑战 医学图像分析面临诸多挑战,其中包括: 图像数据的复杂性:医学图像通常具有高维度和复杂的结构