Page 148 - 《软件学报》2021年第11期
P. 148
3474 Journal of Software 软件学报 Vol.32, No.11, November 2021
网络模型近似所需的总参数,然后在近似参数区间内分组查找各个卷积核最优秩选择,最终返回满足容忍精度
的最优压缩神经网络模型.
如图 7 与算法 1 所示,基于参数估计的自动化加速卷积神经网络算法总体分为 4 步.
• Step 1:相关变量的计算与初始化,包括输入模型的容忍精度、得到原模型的相关参数以及相关变量的
计算.
• Step 2:张量分解压缩神经网络.详细见第 2 节基于张量分解的神经网络加速.
• Step 3:参数估计.参数估计是根据模型的容忍精度估计分解后 CNN 的总参数大小范围.在估计参数下
确定秩中,首先估计的参数按照原卷积核参数占比多少分配,确定每个层分解后的估计参数,然后根据
每个层的估计参数计算不同卷积核的分解秩,最后迭代更新的估计总参数.由公式(14)推出公式(15),得
到不同层的分解秩 Rank[i](其中,相关变量在算法步骤中定义):
⎧ L
⎪ PE = S × ∑ [] i Rank [] i
⎪ i= 1
⎪ Rank Rank Rank
⎪
⎨ [1] = [2] = ... = [ ] L ,Rank ∈N + (14)
_
_
_
[] i
⎪ NumW [1] NumW [2] NumW [ ] L
⎪ Num _W
1 ⎪ ≤ Rank < [] i
[] i
⎪ S [] i
⎩
⎛ ⎛ ⎢ _W ⎥ ⎢ PE Num _W []i ⎥ ⎞ ⎞
×
Rank = max 1,min ⎢ ⎜ ⎜ ⎜ ⎜ Num []i , ⎥ ⎢ ⎢ ∑ _W S ⎥ ⎥ ⎟ ⎟ ⎟ ⎟ (15)
L
[]i
⎜ ⎢ S []i ⎦ ⎜ ⎥ ⎣ ⎢ Num [] [ ]j j ⎥ ⎟ ⎟
⎝ ⎝ ⎣ j= 1 ⎦ ⎠ ⎠
• Step4:分组查找.在近似参数区间内查找各个卷积核分解需要的秩:在估计的参数下,首先按照分组的
思想,将上层卷积核分解时选择的不同秩划分成不同的组,而后对每个组内求下一层卷积核的秩的组
合,并有序排列.如果有多层秩选择,继续向下分组.在其他层情况相同下,某一层分解后的参数越多,模
型的精度越高.在一个组内的,如果选择大的秩组合不能满足容忍精度,那么小的秩组合也就更不能满
足容忍精度.同理,小的秩组合能满足容忍精度,那么大的秩组合也就能满足容忍精度.以两层的分组查
找为例,如图 8 所示:如果秩组合[1,j]不能满足分解后的模型容忍精度,那么这个组内其他秩组合也就
不满足模型容忍精度,跳到下个组进行查找.当秩组合[1,j]的模型精度大于模型容忍精度时,存在秩组
合[1,i]的模型精度大于模型容忍精度,并且秩组合[1,i−1]的模型精度小于模型容忍精度,那么秩组合
[1,i]是组内最优秩组合.当[1,i]是第 1 组组内最优秩组合时,那么第 2 组的组内最优秩组合存在于第 2
组的 1~i 的区间中,那么第 2 组的查找区间为 1~i,以此类推.公式(16)是不同层的秩选择的限制条件,由
公式(16)推出公式(17),Max_Rank(i)表示第 i 层能选择的最大秩,那么从 1 到 Max_Rank[i]都是第 i 层秩
的选择方案:
⎧ Num _W []i
⎪ 1≤ Rank < S
[]i
⎪ ⎨ []i ,Rank ∈N + (16)
[]i
⎪ ∑ L ∑ L Rank ×
⎪ S ≤ []i []i S ≤ [ ]i PE
⎩ i= 1 i= 1
⎧ ⎛ Num _W ⎛ PE ⎥ ⎞ ⎢ ⎞
⎪ min ⎜ []i ,max 1, ⎢ ⎜ ⎥ ⎟ ⎟ , i = 1
⎪ ⎜ ⎝ S []i ⎜ ⎢ S []i ⎥ ⎣ ⎝ ⎦ ⎟ ⎠ ⎟ ⎠
⎪
⎪
Max _ Rank = ⎨ ⎛ ⎜ ⎛ PE − i− 1 Rank × ∑ S ⎥ ⎞ ⎢ ⎞ ⎟ (17)
[]i
⎪ ⎜ Num _W ⎜ ⎜ []j []j ⎟ ⎢ ⎥ ⎟ ⎟
⎪ min ⎜ []i ,max 1, ⎢ j= 1 ⎥ ⎟ , i > 1
⎪ ⎜ S []i ⎜ ⎜ S []i ⎥ ⎟ ⎢ ⎟
⎪ ⎜ ⎜ ⎥ ⎟ ⎢ ⎟ ⎟
⎩ ⎝ ⎣ ⎝ ⎦ ⎠ ⎠