卷积神经网络中的Conv层和BN层融合细节

简介: 卷积神经网络中的Conv层和BN层融合细节
BN层

批归一化层(Batch Normallization)是一种在卷积神经网络模型中大量使用,为了加速模型收敛的技术。为什么CNN 中引入 BN 层可以加速网络的收敛呢?因为将输入的样本数据或特征图,归一化后,改善了输入数据的分布,或者说减少了内部相关变量分布的偏移,模型在统一的分布中更能获取数据的特征。所以这里的归一化,其实是标准化(Standardization),即

x n e w = x − μ σ x_{new} = \frac{x - \mu}{\sigma}xnew=σxμ

一张图可以解释,改善输入数据的分布,可以更容易找到模型参数w和b,从而加速模型收敛

此外,BN 还充当正则器的作用,减少了 dropout 的需要。原文摘要如下

Batch Normalization allows us to use much higher learning rates and be less careful about initialization. It also acts as a regularizer, in some cases eliminating the need for Dropout.

算子融合

在训练时,卷积层和 BN 是两个模块,但是为什么训练时不能融合,而训练完成后,仅执行前向推理却可以融合?因为训练时是按批次输入数据的,BN 就是为了解决小批次输入数据的分布偏移而提出的,因此训练时需要BN层。而训练后的推理,是单样本输入,训练时 BN 的参数已经确定,这些参数相当于对前一层的特征图数据做一次线性变换,而卷积层也可以转化为对特征图的线性变换。因此这两个相邻的算子可以融合。

模型训练时通过移动平均的方法近似获得整个样本集的均值和方差

μ = μ n = α μ n − 1 + ( 1 − α ) ⋅ 1 N ∑ i n x i , n \mu = \mu_n = \alpha\mu_{n-1} + (1-\alpha)\cdot\frac{1}{N}\sum_{i}^nx_{i,n}μ=μn=αμn1+(1α)N1inxi,n

对于特征图 Fc,i,j 中第 c 个通道的 ( i , j ) 的值,写程向量和矩阵形式为

( F ~ 1 , i , j F ~ 2 , i , j ⋮ F ~ C , i , j ) = ( 1 σ 1 2 + ε 0 0 0 0 1 σ 2 2 + ε 0 0 0 ⋱ 0 0 0 0 0 1 σ n 2 + ε ) ( F 1 , i , j F 2 , i , j ⋮ F C , i , j ) + ( − μ 1 σ 1 2 + ε − μ 2 σ 2 2 + ε ⋮ − μ n σ n 2 + ε ) \left(\begin{array}{l} \tilde{F}_{1, i, j} \\ \tilde{F}_{2, i, j} \\ \vdots \\ \tilde{F}_{C, i, j} \end{array}\right)=\left(\begin{array}{cccc} \frac{1}{\sqrt{\sigma_{1}^{2}+\varepsilon}} & 0 & 0 & 0 \\ 0 & \frac{1}{\sqrt{\sigma_{2}^{2}+\varepsilon}} & 0 & 0 \\ 0 & \ddots & 0 & 0\\ 0 & 0 & 0 & \frac{1}{\sqrt{\sigma_{n}^{2}+\varepsilon}} \end{array}\right)\left(\begin{array}{l} F_{1, i, j} \\ F_{2, i, j} \\ \vdots \\ F_{C, i, j} \end{array}\right)+\left(\begin{array}{c} -\frac{\mu_{1}}{\sqrt{\sigma_{1}^{2}+\varepsilon}} \\ -\frac{\mu_{2}}{\sqrt{\sigma_{2}^{2}+\varepsilon}} \\ \vdots \\ -\frac{\mu_{n}}{\sqrt{\sigma_{n}^{2}+\varepsilon}} \end{array}\right)F~1,i,jF~2,i,jF~C,i,j=σ12+ε10000σ22+ε100000000σn2+ε1F1,i,jF2,i,jFC,i,j+σ12+εμ1σ22+εμ2σn2+εμn

即 F = W * x + b,因此可将两者合并

F ~ i , j = W b n ( W c o n v F i , j + b c o n v ) + b b n \tilde{F}_{i, j} = W_{bn}(W_{conv}F_{i,j} + b_{conv}) + b_{bn}F~i,j=Wbn(WconvFi,j+bconv)+bbn

从而新的卷积层的 W 为 Wbn* Wconv ,新的 b 为 Wbn * Wconv + Wbn

具体实现可参考PyTorch的相关源码

参考文档

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift

ML 入门:归一化、标准化和正则化

BN与Conv层的合并

模型推理加速技巧:融合BN和Conv层

相关文章
|
12天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
61 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
1月前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
283 55
|
2天前
|
负载均衡 芯片 异构计算
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI‘24于4月16-18日在美国圣塔克拉拉市举办,阿里云飞天洛神云网络首次中稿NSDI,两篇论文入选。其中《LuoShen: A Hyper-Converged Programmable Gateway for Multi-Tenant Multi-Service Edge Clouds》提出超融合网关LuoShen,基于Tofino、FPGA和CPU的新型硬件形态,将公有云VPC设施部署到边缘机柜中,实现小型化、低成本和高性能。该方案使成本降低75%,空间占用减少87%,并提供1.2Tbps吞吐量,展示了强大的技术竞争力。
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
188 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
9天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
1月前
|
机器学习/深度学习 资源调度 算法
图卷积网络入门:数学基础与架构设计
本文系统地阐述了图卷积网络的架构原理。通过简化数学表述并聚焦于矩阵运算的核心概念,详细解析了GCN的工作机制。
123 3
图卷积网络入门:数学基础与架构设计
|
1月前
|
存储 安全 网络安全
云计算与网络安全:技术融合的双刃剑
在数字化浪潮中,云计算如同一股不可阻挡的力量,推动着企业和个人用户步入一个高效、便捷的新时代。然而,随之而来的网络安全问题也如影随形,成为制约云计算发展的阿喀琉斯之踵。本文将探讨云计算服务中的网络安全挑战,揭示信息保护的重要性,并提供实用的安全策略,旨在为读者呈现一场技术与安全的较量,同时指出如何在享受云服务带来的便利的同时,确保数据的安全和隐私。
34 6
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
深入理解深度学习中的卷积神经网络(CNN)##
在当今的人工智能领域,深度学习已成为推动技术革新的核心力量之一。其中,卷积神经网络(CNN)作为深度学习的一个重要分支,因其在图像和视频处理方面的卓越性能而备受关注。本文旨在深入探讨CNN的基本原理、结构及其在实际应用中的表现,为读者提供一个全面了解CNN的窗口。 ##
|
1月前
|
存储 人工智能 安全
云计算与网络安全:技术融合与挑战
在数字化时代的浪潮中,云计算和网络安全已成为推动社会进步的两大关键技术。本文将探讨云计算服务的发展,网络安全的重要性,以及信息安全技术的演进。我们将通过实例分析,揭示云服务如何增强数据保护,网络安全措施如何应对新兴威胁,以及信息安全技术的创新如何为企业带来竞争优势。文章旨在为读者提供对云计算和网络安全领域的深入理解,并展示它们如何共同塑造我们的未来。
|
1月前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。