没有合适的资源?快使用搜索试试~ 我知道了~
5360××±子位神经网络:学习压缩和加速二进制神经网络王毅凯1 *杨毅2孙富春1姚安邦21北京国家信息科学与技术研究中心,智能技术与系统清华大学计算机科学与技术系2英特尔公司{wangyk17@mails.,富阳太阳能科技有限公司tsinghua.edu.cnintel.com摘要在低比特量化领域,训练二进制神经网络(BNN)是缓解资源受限设备上深度模型的部署的极端解决方案,与32位浮点运算器相比,具有最低的存储成本和明显更便宜的逐位运算在本文中,我们介绍了子位神经网络(SNNs),一种新型的二进制量化设计,旨在压缩和加速BNN。SNN受到经验观察的启发,表明在BNN模型的卷积层学习的二进制内核可能分布在内核子集上。因此,与逐个二进制化权重的现有方法不同,SNN是用内核感知优化框架训练的,该框架利用细粒度卷积内核空间中的二进制量化。具体地,我们的方法包括生成核空间的特定于层的子集的随机采样步骤,以及学习通过优化来调整二进制核的这些子集的细化步骤。视觉识别基准测试实验和FPGA硬件部署验证了SNN的巨大潜力例如,在ImageNet上,具有0.56位权重的ResNet-18/ResNet-34的SNN与传统BNN相比实现了3.13/当应用SNN二进制化权重和激活时,也获得 了 有 希 望 的 结 果 。 我 们 的 代 码 可 在https://github.com/yikaiw/SNN上获得。1. 介绍为了使得能够在移动设备上容易地部署卷积神经网络(CNN),许多尝试被用来提高网络效率,例如,使用卷积神经网络(CNN)。,减少*这项研究是在王一凯在英特尔中国实验室实习时完成的,由负责通信的姚安邦监督5.层18- 好的- 好的+1+1+1+1+1+1- 好的- 好的+1+1+1+1+ 1+ 1+ 1 + 1 + 1- 好的+ 1 + 1 + 1- 好的0.5.层120.5.层6-1 -1+ 1+1-1-1-1 -1+ 10.层18层12层6图1.每层中不同二进制内核的频率,收集在经过良好训练的ResNet-20模型上。左:标准BNN模型,每个权重1位,将每个浮点内核转换为512个二进制内核之一。右:提出的SNN模型,0。每重量56位。而不是使用512二进制内核,0。56位SNN每层仅采用32个二进制内核,实现了比BNN更大的压缩比和加速比。存储开销或计算成本。现有的方法包括有效的架构设计[11,28],修剪[8,17],网络量化[14,19,35,37],知识蒸馏[9,27]等。在这些工作中,网络量化将全精度权重和激活转换为低位离散值,这可以是特别硬件友好的。二进制神经网络(BNN)[1],被认为是量化的极端情况,诉诸于具有仅包括1的1位值的表示网络。此外,当权重和激活都被二进制化时,加法和乘法操作可以由廉价的逐位操作代替。在这种情况下,BNN实现了显着的压缩和加速性能。鉴于BNN的巨大潜力,社区已经做出了许多努力来缩小全精度模型和BNN之间的准确性差距,例如。引入缩放因子以减少量化误差[26],或者通过归一化保留内核信息[25]。去-百分比(%)5361××|联系我们|×−C×出来·c出来在在尽管在精度上取得了进步,但仍然存在进一步压缩和加速BNN的较少探索的方向。网络量化领域的一个共同理解是,BNN是通过将32位浮点权重/激活转换为1位权重/激活来享受最佳压缩和加速性能的极端情况。然而,在这项工作中,我们挑战这种共同的智慧。本文的主要目标是训练一个神经网络与低于1位每重量,这是因此,甚至比传统的BNN模型压缩我们被一个鼓舞人心的观察所激励。 对于3 3全精度卷积核,其二进制化对应物属于具有13×3=512个不同二进制核的集合。在图1(左)中,我们可视化了CIFAR 10 [15]上二进制化ResNet-20 [7]中二进制内核的分布该分布表明,经过良好训练的BNN模型中的二进制内核倾向于在每一层聚类到一个子集,特别是在有更多过滤器的深层中这种聚类分布激励我们,通过学习识别包含大多数二进制内核的这些重要子集,可以获得更压缩的模型,如图1(右)所示。对于具有c个输出通道的3 × 3卷积层,如果我们选择由2τ二进制内核组成的子集(例如,,τ = 5),我们将近似地获得τ的压缩比和τ的压缩比。2. 相关工作二元神经网络网络量化将全精度权重转换为低位权重。在这个管道中,二进制神经网络(BNN)[1]通常被视为极度压缩的结构。在BNN中,每个权重是1或+1,仅占用1位,这直接导致与32位浮点权重相比的32压缩比。当激活被二进制化在一起时,卷积运算等同于逐位运算。虽然BNN是高效和硬件友好的,但主要缺点之一是性能下降。随后的工作寻求各种方法来缓解这个问题。XNOR-Net [26]通过通道缩放因子减少量化误差。ABC- Net [22]采用多个二进制基来近似权值和激活,以提高性能。Bi-Real [23]建议使用短的剩余连接来减少信息丢失。IR-Net [25]除了最小化量化误差之外,还最大化二值化参数的信息熵,并受益于改进的信息保存。RBNN [20]学习旋转矩阵以减少量化误差的角度偏差。虽然这些工作试图减少BNN的性能下降,但很少有人考虑进一步的com-bNN。加速比2τ出来9(see秒4.4和Sec. 4.5)。BNN模型的压缩/加速。 [16]第十六话通过以下方式将每个展平的二进制段转换为较短的段为了确定最佳子集,我们提出了一种方法,两个渐进的步骤。在第一步中,我们随机采样二进制内核的特定于层的子集为了减轻随机性的潜在影响,在第二步中,我们通过优化来细化子集。使用我们的完整方法学习的模型被称为子位神经网络(SNN)。图1(右)显示了训练SNN模型后的学习子集。通过子集细化,SNN倾向于学习与BNN相似的聚类区域。据我们所知,这是第一种在量化流水线中同时压缩和加速BNN的方法详细的图像分类实验验证,我们的SNNs实现了令人印象深刻的大压缩比和加速比BNN,同时保持高精度。此外,硬件部署证明,我们使用ResNets作为测试示例的SNN比ImageNet上的BNN同行带来了超过3的速度[4]。一方面,SNN为二进制神经网络量化的设计空间和优化引入了新的视角。特别地,SNN揭示并利用BNN模型的不同层中的聚类二进制内核分布的关系。另一方面,SNN为压缩打开了新的技术方向加密虽然存储加密代码可以减小模型大小,但是完整的BNN模型需要在推断之前被重构,因此FlexXOR不能在提高推断速度方面提供额外的益处。其他高效设计还有其他旨在压缩或加速神经网络的解决方案。结构网络修剪方法显式地修剪过滤器[8,17]。知识蒸馏方法[9,27]可以指导从更高能力的教师那里学习知识(例如预测和特征)一些作品设计了轻量 级 的 CNN 主 干 , 如 Mo-bileNets [11 , 28] 和ShuffleNets [34]。另一个提高网络效率的管道是调整网络深度[3],或宽度[31,32],或分辨率[30]。然而,在我们的工作中,我们的目标是压缩和加速基于新的二进制量化优化的BNN模型,其他有效的设计可能与我们的方法正交。3. 预赛对于CNN模型,假设权重和激活其中ni=ci·wi·hi,mi=ci·Wi·Hi.在这里,加速BNN,同时维护其硬件-我昏迷Ci是输出和输入通道的数量;友好的属性,创造潜在的宝贵机会-以SNN的优点为条件的专用硬件设计的机构。(Wi,hi)和(Wi,Hi)分别表示权重和激活的宽度和高度。鉴于标准卷积算子②,第i层的计算C5362◦·◦−··出来·c×−| || |.在我我我我2c c2是ai=wi②ai−1,对于单纯y,偏置项被省略。为了节省存储和计算成本,BNN用1位值(±1)表示权重和/或激活我们将w¯i∈{±1}ni和a¯i∈{±1}mi记为二元vec-变平转换为十进制数(100010011)2=(275)10权重和激活的变量。然后将卷积重新表示为ai=λi(w¯ia¯i−1),其中λi表示用于减少量化误差的通道缩放因子;表示按位运算,包括XNOR和Bitcount,这可以在很大程度上改善com-图2.将索引分配给二进制内核的说明二进制核被展平为一维向量,然后用二进制序列表示。分配的索引是从二进制序列转换的相应十进制数。与标准卷积运算相比的计算效率。在流行的方法中,权重二进制化的前向传递简单地通过w<$i=sign(wi)来实现,其中逐元素函数sign()根据其符号将每个权重值转换为1或+1。由于梯度几乎在任何地方都消失,因此称为直通Es的技术-估计器(STE)[1]被广泛用于传播梯度。4. 亚比特神经网络我们首先介绍我们的观察,这促使我们提出一个两步的方法,即。随机子集抽样和子集精化。节中4.4和Sec.4.5,我们不-BNN(1位,ImageNet上的ResNet-34)5.0.5.0.5.0.5.0.Top-k总百分比100.0.100.0.100.0.100.0.我们的方法减少了模型的大小,提高了传统BNN的推理速度。节中4.6,我们为实际部署提供了硬件设计。4.1. 配制和观察可以很容易地证明,使用sign()函数对权重进行二进制化等效于将权重聚类到最近的二进制向量。换句话说,w¯i=sign(wi)=argminb−wi2。(一)b∈{±1}n此外,考虑到信道的独立性w¯i可以进一步被定义为每个二进制k的按信道级联w¯i=argmink∈Kk−wi2,其中K={±1}w·h并且c=1,2,···,cii给定K的定义,总共存在K=2个w·h元素,其中每个元素是二进制核。我们主要关注3 × 3卷积核,因为它们通常占据现代神经网络中的主要参数和计算,因此这里K= 2× 9 =512。在BNN中,每个权重占用1位,因此我们需要9位来表示二进制内核。我们为这些二进制内核分配索引(从1到512),并且图2中描绘了分配过程的示例。具体来说,我们用一个二进制序列表示扁平化的二进制内核,然后将其转换为十进制数。例如,具有全部1值的二进制内核被索引为1,而具有全部1值的二进制内核被索引为1。+1值被索引为512。这里出现了一个问题:BNN模型的训练过程如何倾向于分布512个二进制核?到图3.左:使用ResNet-34在ImageNet上进行良好训练的标准BNN模型的二进制内核分布我们不对分布应用任何非线性变换,并且只裁剪大于5%的值。具有密集簇的区域用颜色突出显示。右:前k个最频繁的二进制内核的总百分比。图3示出了训练后标准BNN模型中不同二进制内核的分布令人惊讶的是,训练过程将浮点内核二进制化为二进制内核的某些集群/子集,并且给定用颜色高亮的区域,子集在不同层中明显不同。前k个总百分比指示例如通过仅提取最频繁的64个(从总共512个)二进制核,在这些层中的总百分比可以超过70%。此外,在过滤器较多的深层中,聚类特性趋于更明显。例如,在第25层中,96. 3%的浮点内核被二进制化为64个二进制内核,约60%的浮点内核被二进制化为仅8个二进制内核。这些发现表明,BNN模型可以通过对二元内核的特定于层的子集进行采样来潜在地压缩,并且仍然保持高性能。因此,我们设计了以下两步方法。4.2. 随机核子集采样在这里,我们提出了一种简单而有效的方法来生成具有二进制内核的子集,这可以进一步减少层25层20层15层1010yerLa15yerLa20yerLa25yerLa百分比(%)百分比(%)我+1个-1 -1 -1 +1个-1 -1 +1个+1个+1个-1 -1-1 +1个-15363122 − 12⋯= 10.4= 15.2=4.0=15.6符号()argmin,argmin−−9·≤CCL⊂||C·C我我我C联系我们.×JCC·cC 2Li,如果wi∈(−1,1),JF或ward:w¯=argmink−w,(2)在联系我们联系我们∈我我我联系我们我我具有二进制核的子集i,其中i= 2c,1≤ 9不太容易受到随机性的影响,与共享+1 +1-一个+1-一个-一个-一个-一个+1-一个-一个+1+1 -一个-一个+1 -一个+1BNNbinar ize dkerne lw(i空间:每个内核{±1}$×$1 ×9位1位/重量C-0.6 -0.4 +0.6+0.9 -0.1 -0.5+0.1 -0.2 +0.4全精度内核wi空间:$×$32 ×9位/内核32位/权重C+1-一个-一个-一个-一个+1+1-一个-一个-一个-一个+1+1-一个-一个-一个-一个+1SNNbinar ize dkerne lw(i空格:{1,2,3,,2c}每个内核的位数单位重量的全球随机子集,将在第二节讨论。五点二。4.3. 基于优化的由于随机采样不能保证最优的二元核,因此仍有一些改进的空间。为此,我们通过优化来细化采样子集。我们用张量形式pi∈Rwi·hi·|Pi|,其是k内核的级联。p i 中 的每个单个权重被初始化为1。0或+1。0,并且将在训练期间更新由于pi在优化期间不再限于{±1},因此我们在其上应用逐元素函数符号(·)。注意绝对值图4. 标准BNN模型和所提出的方法(SNN)的二值化比较。这里,d表示k − wi2,如等式2中所定义。(2),其 中 kPi. 在 我 们 的 SNN 中 , 每 个 核 对 应 于 1 , 2 ,3,…,2τ中 的 索 引 ,其具有与1 τ相同的大小,因此每个核占用τ比特。平均而言,SNN的每个权重仅需要τ比特。模型大小,并提高推理速度超过BNN模型。与将权重转换为完整二进制集合K(在第5.2节中定义)的现有二进制化方法相比,4.1)在不考虑内核结构的情况下,我们将不同层中的权重聚类到K的不同子集,因此我们能够训练每个权重低于1假设我们想要使用τ位来表示每个内核(其中1τ9),则每个子集的大小应为2τ。 我们设定 在我们的方法中,τ作为整数。注意,我们采用特定于层的子集而不是在整个网络中共享子集,以便保持二进制内核的多样性形式上,给定CNN模型的第i层,我们随机采样满足Pi =2T的子集Pi,K。我们通过将每个wi聚类到Pi中最近的二进制核来将其二进制化,并使用标准STE[1]方法来更新wi。在这种情况下,表示为损失函数,向前和向后传递被计算为:i i2c c2k∈Pipi的每个权重的大小不影响前向除非它的符号改变。当sign()函数的输入在0附近振荡时,输出值在1和+1之间快速变化,这可能导致不稳定的训练。为了解决这个问题,我们进一步引入了一个二元张量m1wi·hi·|Pi|来“记住”每一个符号重量(单位:pi)在训练之前,mi被初始化为sign(pi),并且在训练期间,如下更新mim=m I|pi| ≤θ+sign(p)I|pi|> θ,⑷其中θ是阈值,它是一个正的、小的超参数,用于缓解符号的快速变化,提高学习的稳定性;I是获得属于下式的掩码张量的指示函数:0,1w·h·|P|;代表表示逐元素乘法。总结一下,mi只有当pi的大小大于θ时,m i才遵循pi的符号;否则,mi保持不变。在我们的实验中,θ被设置为10−3我们遵循与Eq相同的表达式(3)更新wi。类似地,将sign()函数应用于等式(1)中的pi (4)防止梯度传播,因此我们再次采用STE技术来基于梯度w.r. t更新pi。米岛二值化wi的前向传递和用于更新wi和pi两者的后向传递被计算为,Forward:w¯i=argminmi−wi2,(5)CMijc2向后:≈wcC(三)联系我们wi0,否则。向后:等式(3)、尼洛普岛 ≈mi,(6)图4说明了为什么我们的方法可以实现比标准BNN模型更大的压缩比,考虑到最广泛使用的3 - 3卷积内核。压缩的详细信息在第2.2节中进一步提供。4.4这种随机抽样方法被称为“香草”其中j = l,2,···,|Pi|m∈ {±1}w·h是m的第j个二元核. 因为mi直接影响等式中的w¯i。 (5)、梯度w.r.t. 可以通过累加梯度w来自动获得m。r. t. w¯i,c的范围为1子位神经网络(Vanilla-SNN)。 为我昏迷CCCLC+1-一个-一个-一-一+1-一个-一个+1+1 -一个-一5364I. 我们发现用同样的方法-在这个版本中,采样在初始化期间执行实验结果表明,该方法在性能和效率之间取得了很好的平衡更新w和p的速率已经产生了良好的结果。在核子集细化的帮助下,可以获得新的二进制核,这些核可能潜在地更接近形成性的 假设核Pi,Pi,···,Pi 是inde-12|P|效率此外,采样层特定子集将在训练期间被悬垂地优化,可能出现两个至c5365…每个内核c在滤波器conv输入激活→我××∼9××出来在Ci在出来9CMJJC 2∂w布吕普二进制化中的可选二进制内核。换句话说,在出来j1j2×±≤算法1训练:子位神经网络(SNN)的前向和后向过程。1:Require:输入数据;全精度权重w;阈值θ;学习率η。2:对于层i=l-L,doc位出道+1个-1-1+1个-1+1个-1+1个-1c位出道3:随机采样特定于层的子集PiK,并且在那里4:是|Pi|=2τ;将Pi表示为pi∈Rwi·hi·|Pi|.BNN:总参数9×cout×c$n位我们的SNN:总参数r×cout×c$n+ 9×2cbits5: 初始化mi= sign(pi)。6:对于步骤t=1Td07:前向传播:8:对于层i=l-L,do9:计算mi=miI10:对于通道c=1→ci|pi| ≤θ·c+ sign(pi)I做i i2|pi|>θ。图5.在层中存储权重和子集的说明于11:计算w¯i=argminim− w。12:在Sec中计算ai=λi·(w¯i◦sign(ai−1))。3.第三章。c c c c c c c13:反向传播:2c我们的SNN:总运营×W×2×���&14:对于层i=L-1do15:对于信道c=l-ci·cdo+× W×out×���$n− 1 /2于L2c ×cin16:通过等式16计算Rwwi(三)、每像素对c求和计算LCL十七:十八:普岛维姆岛c在参数更新:19:更新w = w − ηL,p = p − ηL。20:检查m,i中的重复二进制核,并用随机新核替换p,i中的这些对应核。在一次特定更新之后,m i中的重复二进制内核,即、j1/= j2s。t. mi= mi。这个问题减少了图6.标准BNN和我们的SNN中卷积过程的比较。我们的方法共享计算,而不是计算所有cout滤波器的激活,这导致更大的加速为2τc在大多数流行的主干中,如ResNets。为了简单起见,这里省略了上标i该层分别为c_in和c_out,该层的权重总共占用τ×c×c比特。与BNN不同,我们需要实际的比特宽度减小并且可能影响预期的准确度。为了解决这个问题,我们在每次训练迭代中执行mi的扫视,以检查是否存在重复的二元内核。如果在mi中检测到重复的二进制内核,则我们移除pi中的对应内核,并从K中随机采样新内核(与移除的内核相同的数量)以补充pi。通过这种方法,可以在训练期间达到目标这些新的内核额外地存储具有2T个元素的子集P1(即,、3 3二进制核),并且这样的子集占据92π比特,其可以被忽略,因为它是每层共享的例如,在0. 56位(τ =5)ResNet-18或ResNet-34,在P i中有32个二进制内核,仅占0. 01% 0. 7%的参数,取决于层的通道号由于层的权重在标准BNN中占据9c inc out比特,因此我们的SNN实现了τ的压缩比。将在以后的培训过程中一起更新。这种可学习的方法被称为子位神经网络(SNN)的完整版本在算法1中总结了训练SNN的前向和后向过程。4.4. 压缩如图4中初步示出的,在标准BNN中,每个权重由1位表示,并且因此每个3 × 3二元核占用9位。为了压缩BNN,我们为每个二进制内核采用索引,并且这样的索引指向4.5. 加速度除了压缩模型大小之外,SNN还实现了比标准BNN更高的加速比由于不同的二进制内核的数量被限制为2τ,所以可以在很大程度上共享卷积运算。图6描绘了标准BNN和我们的方法的卷积过程。基本区别在于卷积运算,其中BNN需要H×W×c i×(c i×3×3+1)位方式3×3卷积层的操作,但SNN减少了之一子集中的2τ个该指数属于这个数的比率为2τ出来 . BNN和SNN都是到{1,2,3,...,2τ},或等效地可以由下式表示:沿着ci执行通道式加法达ci次,以及τ位1向量。给定1τ<9,每个权重平均占用τ比特。在此,我们进一步提供图5,以便更好地理解存储权重和层中的子集。根据图5,在SNN中,表示SNN的输入和输出通道号。与前一步骤(卷积)相比,该步骤占用低得多的计算负担注意,SNN需要额外的索引操作来重用计算的激活,并且这样的索引成本可以通过设计数据流来大大节省,四点六分。…每个索引r位(这里,r= 5)c在+1 +1 -1-1 +1-1+1 -1 +1+1 -1-1- 好的指数…2c- 好的+1 -1 +1-1 +1-1-1 -1 +1-1 +1-1每个元素9位+1 -1-1-1+1个- 一个+1个-1+1个+1个+1-1输出激活c位出道滤波器c$ncout×c $n每像素卷积BNN:操作总数×W×������+× W×out ×$n − 1 /2对c求和一输出激活c$n投入激励c在C#$t组c$nc位出道组……我+1个-1-1-1-1+1个5366+PE+PE+× ×××× ××××××∼ × ∼×× × × ∼×输入特征图图7. 硬件设计为0. 例如,56位SNN,其中每个层的子集包含32个二进制核。预计算单元需要32个周期来遍历所有二进制内核。累加器单元具有4个并行累加器,它们在一个周期内累加4组数据,并同时将结果写回LB的相应位置。为了匹配流水线阶段的周期数,LB的宽度可以被设置为128,使得它也需要32个周期来完成该过程。4.6. 实际部署我们已经讨论过,我们的SNN理论上比标准BNN更有效。为了验证在实际部署的运行时加速,我们提出了一个硬件加速器的SNN架构在图7。特别地,我们将处理引擎(PE)划分为两个流水线单元。首先,预计算单元通过内核ID串行地获取二进制内核,并将它们与输入激活进行卷积。结果在当前周期内立即存储在查找表第二,累加器单元读取内核ID,并以内核ID作为地址从LUT中取出数据来自LUT的数据将与存储在行缓冲器(LB)中的数据累积一旦沿着输入通道的所有输入激活被处理,LB中的数据将被存储到专用输出缓冲器中并被清除以用于下一轮。这样的架构设计特别适合FPGA:由于FPGA本身是基于LUT的结构,因此实现分布式查找表的成本非常小。两个单元都支持不同PE中的并行计算两个单元遵循数据流水线,并且在相同的周期内并行计算理论上,子集P1中的每个二进制核在H1W1输入激活中的每个通道和每个像素都被预先计算,并且因此在H1W1中有2τc个预先计算的结果需要存储在LUT中。然而,通过良好地设计计算流程,我们可以大大减少查找表的大小,从而减少查找时间成本。如图7所示,H1W1输入激活中的c被分成重叠的(给定卷积步幅1)并且被并行计算的1、3、3个在每个时间,LUT中的所有预先计算的结果仅对应于一个相同的激活切片。因此,实际LUT大小不再是2τ×cin×Hi×Wi,而是减小到仅2τ。这样的小LUT大小导致查找过程的非常低的等待时间,例如,查找表的查找时间。,对于我们的0. 56位模型,可在当前时钟周期内轻松实现因此,查找过程很好地集成到部署中,并且可能不会影响循环次数。5. 实验我们进行了全面的实验,以评估我们的方法的有效性和效率。我们所有的实验都是用PyTorch [24]库实现的。5.1. 基本结果我们选择CIFAR10 [15]和ImageNet [4]数据集进行实验。继IR-Net [25]之后,当激活也被二进制化时,采用了Bi-Real [23]按照常见的范例[23,25,26],我们保持第一层和最后一层为全精度,并将其他层二进制化。CIFAR10. 遵循最先进的BNN中的流行设置,我们采用ResNet-20 [7],ResNet-18和VGG- small [29]来评估我们在CIFAR 10上的方法包括我们的香草-SNN、SNN和其他现有方法的结果提供在表1中。对于我们的方法,我们使用三个典型的位宽0。67位,0. 56位和0。44位,它们是通过将τ分别设置为6、5和4 逐位参数(Params)和按位操作(Bit-OP)是比较,突出我们的方法1的优越性。我们的方法提出了增加压缩和加速率的位宽减少,轻微和稳定的性能变化。加速速率与架构中的通道数量高度相关。例如,通过将BNN压缩为0。VGG-small中的56位,SNN几乎没有精度下降,但将模型大小和Bit-OP减少了1。80和5。34个分别。ImageNet. 我 们 还 在 ImageNet 上 进 行 了 实 验 ,ImageNet是视觉识别最具挑战性的基准之一。 在表2中,我们报告了基于ResNet的结果。18和ResNet-34,位宽设置为0。67位,0. 56-位和0。44位来评估我们的方法。 较最先进的BNN方法,通常,SNN具有0. 67位,0. 56位和0。44位大约有1。5%,3. 0%,4. 5%的精度分别下降,但节省了1. 50,1. 80、2. 25,并且将比特操作节省1。90二、083 .第三章。三十五三65,5。65六、07.通过将位宽从1位减小到0。44位,每个层的可选二进制内核的数量从512显著减少到16。考虑到这一点,精度下降是适度的。 作为介绍-在Sec中引入。2,FleXOR [16]通过加密减少参数,并在推理之前依赖于解密,这对运行速度没有进一步的好处表2显示了我们的SNN在两个方面优于FleXOR:1)SNN1为了比较,在表1和表2中,收集了所有方法的参数和逐位操作,排除了第一层和最后一层,因为它们没有按照公共范例进行二进制化。输出特征图128PE128…......这是什么?...权重(二进制内核ID)32个循环预先计算LUT32个循环蓄能器LB权重(二进制内核ID)PE…双缓冲器3232 32输入Dot93232子集(32个二进制内核)323232 线缓冲器………Dot9+5367×表1. CIFAR10上的图像分类结果基于32 32作物尺寸的单作物测试。我们遵循IR-Net [25]中的训练细节和技术,这可以作为我们1位基线的参考我们的方法的每个结果是三次运行的平均值绿色突出显示的数字是相对于BNN对应物的减少率这表明我们的实施结果。方法位宽(W/A)#参数(Mbit)比特操作(G)Top-1 Acc.(%)ResNet-18全精度32/ 32351.5435.0393.0RAD [5]IR-Net [25]1/ 1个1/ 1个10.9910.990.5470.54790.591.5香草-SNN|SNN香草-SNN |SNN香草-SNN |SNN0.67/ 10.56/ 10.44/ 17.324(1.5×)6.103(1.8×)4.882(2.3×)0.289(1.9×)0.164(3.3×)0.097(5.6×)89.7 |九十一点零89.3 |九十点六88.3 |90.1IR-Net* [25]三十二分之一10.9917.5292.9香草-SNN|SNN0.67/ 327.324(1.5×)9.236(1.9×)92.4 |九十二点七香草-SNN|SNN香草-SNN|SNN0.56/ 320.44/ 326.103(1.8×)4.882(2.3×)5.239(3.3×)3.106(5.6×)92.0 |92.391.6 |九十一点九ResNet-20全精度32/ 328.542.56791.7多瑞法[36]1/ 1个0.2670.04079.3IR-Net [25]1/ 1个0.2670.04086.5香草-SNN|SNN香草-SNN |SNN香草-SNN |SNN0.67/ 10.56/ 10.44/ 10.178(1.5×)0.148(1.8×)0.119(2.3×)0.0400.034(1.2×)0.025(1.6×)83.9 |八十五点一82.7 |84.082.0 |八十二点五多瑞法[36]三十二分之一0.2671.28390.0LQ-Net [33]三十二分之一0.2671.28390.1IR-Net [25]三十二分之一0.2671.28390.8香草-SNN|SNN香草-SNN |SNN香草-SNN |SNN0.67/ 320.56/ 320.44/ 320.178(1.5×)0.148(1.8×)0.119(2.3×)1.2831.099(1.2×)0.822(1.6×)88.7 |九十87.8 |八十八点九87.1 |八十七点六VGG-small全精度32/ 32146.2438.6692.5实验室[10]1/ 1个4.5710.60387.7XNOR [26]1/ 1个4.5710.60389.8BNN [13]1/ 1个4.5710.60389.9RAD [5]1/ 1个4.5710.60390.0IR-Net* [25]1/ 1个4.5710.60391.3香草-SNN|SNN0.67/ 13.047(1.5×)0.194(3.1×)90.3 |九十一点零香草-SNN|SNN香草-SNN|SNN0.56/ 10.44/ 12.540(1.8×)2.032(2.3×)0.113(5.3×)0.074(8.1×)89.8 |九十点六89.2 |九十IR-Net* [25]三十二分之一4.57119.3092.5香草-SNN|SNN0.67/ 323.047(1.5×)6.208(3.1×)92.0 |九十二点四香草-SNN|SNN香草-SNN|SNN0.56/ 320.44/ 322.540(1.8×)2.032(2.3×)3.616(5.3×)2.368(8.1×)91.7 |92.191.3 |九十一点九以较低的位宽设置实现更好的精度,例如,SNN为0。56/32位实现63. 4%vs. 0. 6/32位实现62. 2)SNN极大地减少了推断比特操作。此外,SNN获得比相应的Vanilla-SNN更好的性能,例如,从62。8%至63。4%为0。56/32位ResNet-18,它验证了在Sec.四点三。5.2. 消融研究特定于层或层共享的内核子集。在SEC的观察。4.1表明二进制内核倾向于聚类到不同层中的不同子集,并且因此Sec. 4私有化不同层的子集。使用特定于层的子集也减轻了随机性带来的不稳定性。表3中的比较结果表明:1)具有层共享子层的设置5368×∼×表2. ImageNet上的图像分类结果基于224 224裁剪大小的单裁剪测试。我们遵循IR-Net [25]中的训练细节和技术,这可能是我们1位基线的参考。绿色突出显示的数字是相对于BNN对应物的减少率。方法位宽(W/A)#参数(Mbit)比特操作(G)Top-1 Acc.(%)ResNet-18全精度32/ 32351.54107.2869.6XNOR [26]1/ 1个10.991.67751.2BNN+[13]1/ 1个10.991.67753.0双真实[23]1/ 1个10.991.67756.4XNOR++[2]1/ 1个10.991.67757.1IR-Net [25]1/ 1个10.991.67758.1香草-SNN|SNN香草-SNN |SNN香草-SNN |SNN0.67/ 10.56/ 10.44/ 17.324(1.5×)6.103(1.8×)4.882(2.3×)0.883(1.9×)0.501(3.3×)0.297(5.6×)55.7 |五十六点三54.6 |五十五点一52.5 |53.0BWN [26]三十二分之一10.9953.6460.8HWGQ [18]三十二分之一10.9953.6461.3BWHN [12]三十二分之一10.9953.6464.3IR-Net [25]三十二分之一10.9953.6466.5FlexOR [16]FlexOR [16]0.80/ 320.60/ 328.788(1.3×)6.591(1.7×)53.6453.6463.862.0香草-SNN|SNN0.67/ 327.324(1.5×)28.26(1.9×)63.7 |六十四点七香草-SNN|SNN香草-SNN|SNN0.56/ 320.44/ 326.103(1.8×)4.882(2.3×)16.03(3.3×)9.504(5.6×)62.8 |六十三点四60.1 |六十点九ResNet-34全精度32/ 32674.88225.6673.3双真实[23]IR-Net [25]1/ 1个1/ 1个21.0921.093.5263.52662.262.9香草-SNN|SNN香草-SNN |SNN香草-SNN |SNN0.67/ 10.56/ 10.44/ 114.06(1.5×)11.71(1.8×)9.372(2.3×)1.696(2.1×)0.965(3.7×)0.581(6.1×)60.6 |61.459.5 |60.258.1 |五十八点六IR-Net [25]三十二分之一21.09112.8370.4香草-SNN|SNN0.67/ 3214.06(1.5×)54.27(2.1×)67.5 |68.0香草-SNN|SNN香草-SNN|SNN0.56/ 320.44/ 3211.71(1.8×)9.372(2.3×)30.88(3.7×)18.59(6.1×)66.3 |六十六点九64.5 |六十五点一集合呈现不稳定的结果,尤其是在诸如0的低位宽处。11或0。33,而使用层特异性子集更有效和稳定。2)核心子集细化,提出在二。4.3,可以改善层特定情况以及层共享情况的结果。学习精细化的过程。虽然实验已经验证了子集细化的有效性,但我们想弄清楚它为什么有效。图8示出了训练期间子集的变化(具有子集细化)。我们观察到,二进制内核似乎是不规则的,因为它们最初是随机采样的第一个时期。在子集精化的帮助下,二进制核的分布在以后的时期趋于规则和对称。超参数θ的分析由方程式(4),我们引入θ作为阈值,以缓解训练过程中pi在0附近时符号的快速变化为了验证θ是否有效,在图9中,我们提供了不同θ设置的精度曲线当θ=0时,验证曲线在100 200个时期,并且最终预测受到不稳定性的影响。我们观察到将θ设为10−3或10−2会得到类似的结果,θ = 10−3稍好一些。我们的补充材料包括训练细节,扩展到11卷积,使用PASCAL VOC [6]和MS-COCO [21]数据集进行对象检测的评估等。5369-×表3.使用层特定子集和层共享子集的比较。实验在具有ResNet-20的CIFAR 10上进行,并且每个设置使用不同的随机种子进行三次。以绿色突出显示的数字是特定于图层的设置相对于共享图层的设置的增益。表4. 实际速度测试0. 56位SNN和1位BNN去部署。运行时间评估与224 224图像输入和基于64PEs@1GHz的硬件配置激活在模型中不被二进制化。骨干ResNet-18ResNet-34运行时间(ms)1位BNN3.6267.7530的情况。56位SNN1.1592.329加快3.13×3.33××103时期1(随机子集)时期50时期250×103ReSNET34纪元500750年代Epoch1000图10.比较0. 56位SNN和1位BNN部署。图8.可视化二进制内核子集如何在0. 56位SNN。实验在具有ResNet-20的CIFAR 10上进行。培训阶段验证阶段图9. Top-1精度与在0中具有不同θ设置的历元。56位SNN,关于训练 阶段(左)和验证 阶段(右)。实 验在具有ResNet-20的CIFAR 10上进行,并且每个设置用不同的随机种子进行三次。5.3. 部署结果我们使用IntelrCoFluentTM技术2建立了一个跨操作级模型,并对标准BNN和我们的SNN硬件设计的性能进行了评估。英特尔CoFluent是一种系统建模和仿真解决方案,用于在早期设计期间进行性能预测和架构优化2https:/
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功