44、BatchNorm 为什么可以和卷积融合?

本文探讨了将卷积(Conv)与批量归一化(BN)融合以提升神经网络性能的原因和方法。融合能减少数据在存储器与计算单元之间的搬运,提高计算效率。通过直接在原始输入上应用融合后的公式,避免了中间结果的存储与读取,实现了计算优化。

conv 算法和 bn 算法都介绍过了,这里来看一个属于两者优化方面的知识:

为什么在一些情况下,我们需要将 conv 和 bn 融合起来呢,为什么他们可以融合以及怎么融合呢?

融合的目的

首先神经网络的性能很重要这是老生常谈的话题了。将两个算法融合成一个算法,目的肯定就是为了提高神经网络的性能。

这里引入一点计算机中计算的知识:

传统的冯诺依曼架构的计算机,是将数据的存储和计算分离开的。

也就是说,要计算的数据是放在存储器上,而负责计算的硬件是另一个单独的计算单元。在计算时需要将数据从存储器上搬运到计算单元上,完成计算后再搬运回存储器上。

就像是在厨房做饭,数据就是菜,如果做饭需要先将菜从冰箱里拿出来,放在锅里炒,炒完再放回餐盘中。

这其中,冰箱就是存储器,锅就是计算单元,而餐盘是另一个存储器。

这是典型的冯诺依曼架构,现在大部分电脑和计算芯片依旧采用的还是这个架构。

在我们的笔记本电脑中,存储器一般指的是内存或者硬盘,计算单元就是CPU。

将数据从内存搬运到 CPU 中是需要时间的,虽然时间很短。

假设 conv 计算的输出数据是 [1, ho, wo, co],然后给到下一层 BN 来计算。如果将这个输出数据 [ho, wo, co] 存回存储器,下一层 BN 再去存储器上搬过来,这一来一回的时间就浪费了。

于是,我们就想到了一个方法,将 conv 和 bn 融合成一个算法,这样只需要在锅里做一道 conv+bn 的菜,做完后直接放回餐盘中即可,而conv 的输出则无需放回,

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值