赞
踩
这一方向旨在加速推理,同时保持预训练模型的准确性。修剪网络连接[Deep compression: Compressing deep neural networks with pruning, trained quantization and huffman coding,Learning both weights and connections for efficient neural network]或信道[Learning structured sparsity in deep neural networks]减少了预训练模型中的冗余连接,同时保持了性能。
文献中提出了量化和因式分解来减少计算中的冗余以加速推断。在不修改参数的情况下,通过FFT (普遍运用于多项式乘法和卷积运算)和其他方法[Lcnn: Lookup-based convolutional neural network]实现的优化卷积算法在实践中减少了时间消耗。提炼[Distilling the knowledge in a neural network]将知识从大模型转移到小模型,这使得训练小模型更容易。
- 通过量化(quantization)、裁剪(pruning)和压缩(compression)来降低模型的尺寸;通过高效的计算平台加速推理(inference)的效率,例如Nvidia TensorRT、GEMMLOWP、Intel MKL-DNN等以及硬件定制。
- 模型量化(model quantization)是通用的深度学习优化的手段之一,它通过将float32格式的数据转变为int8格式,一方面降低内存和存储的开销,同时在一定的条件下(8-bit低精度运算 low-precision)也能提升预测的效率。更少的存储开销和带宽需求。即使用更少的比特数存储数据,有效减少应用对存储资源的依赖。
- 更低的功耗。移动 8bit 数据与移动 32bit 浮点型数据相比,前者比后者高 4 倍的效率,而在一定程度上内存的使用量与功耗是成正比的。
- 更快的计算速度。相对于浮点数,大多数处理器都支持 8bit 数据的更快处理,如果是二值量化,则更有优势。
- 模型量化适用于绝大数模型和使用场景,对于训练后的量化,不需要重新训练模型,可以很快将其量化为定点模型,而且几乎不会有精度损失,因此模型量化追求更小的模型和更快的推理速度。
- pytorch中的量化:量化是指用于执行计算和以低于浮点精度的位宽存储张量的技术。量化模型以降低的精度而不是全精度(浮点)值对张量执行部分或全部运算。这允许更紧凑的模型表示,并在许多硬件平台上使用高性能矢量化操作。与典型的FP32型号相比,PyTorch支持INT8量化,允许将模型尺寸减小4倍,将内存带宽要求降低4倍。与 FP32 计算相比,对 INT8 计算的硬件支持通常快 2 到 4 倍。量化主要是一种加速推理的技术,量化运算符仅支持正向传递。量化 — PyTorch 主文档
FFT的一点记录
复数:z=a+bi,其中 a , b ∈ R , i = − 1 a,b\in\R,i=\sqrt{-1} a,b∈R,i=−1
加 法 法 则 : ( a + b i ) + ( c + d i ) = ( a + c ) + ( b + d ) i 乘 法 法 则 : ( a + b i ) ( c + d i ) = ( a c − b d ) + ( a d + b c ) i 除 法 法 则 : a + b i c + d i = a c + b d c 2 + d 2 + b c − a d c 2 + d 2 i 欧 拉 定 理 : e i θ = c o s θ + i s i n θ 复 数 可 以 写 作 为 : z = r e i θ , 其 中 r 为 它 的 模 , θ 为 它 的 幅 角 加法法则:(a+bi)+(c+di)=(a+c)+(b+d)i\\ 乘法法则:(a+bi)(c+di)=(ac-bd)+(ad+bc)i\\ 除法法则:\frac{a+bi}{c+di}=\frac{ac+bd}{c^2+d^2}+\frac{bc-ad}{c^2+d^2}i\\ 欧拉定理:e^{i\theta}=cos\theta+isin\theta\\ 复数可以写作为:z=re^{i\theta},其中r为它的模,\theta为它的幅角 加法法则:(a+bi)+(c+di)=(a+c)+(b+d)i乘法法则:(a+bi)(c+di)=(ac−bd)+(ad+bc)i除法法则:c+dia+bi=c2+d2ac+bd+c2+d2bc−adi欧拉定理:eiθ=cosθ+isinθ复数可以写作为:z=reiθ,其中r为它的模,θ为它的幅角
单位根-三个引理
- 消去引理 : w d n d k = w n k w_{dn}^{dk}=w_n^k wdndk=wnk,如 w n n 2 = w 2 = − 1 w_n^\frac{n}{2}=w_2=-1 wn2n=w2=−1.
- 折半引理: ( w n k + n 2 ) 2 = ( w n k ) 2 = w n 2 k (w_n^{k+\frac{n}{2}})^2=(w_n^k)^2=w^k_\frac{n}{2} (wnk+2n)2=(wnk)2=w2nk。
- 求和引理: ∑ i = 0 n − 1 ( w n k ) i = 0 \sum_{i=0}^{n-1}(w_n^k)^i=0 ∑i=0n−1(wnk)i=0。
onal networks,Learning structured sparsity in deep neural networks])快得多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。