深度学习模型往往受到端计算力的限制,无法很好的部署在移动端或无法降低端的计算成本。例如自动驾驶的模型就过于巨大,而且往往是很多模型并行,所以一般会用一些加速的方法来降低推算的计算力要求。
加速方法有多种不同角度:网络结构,模型推理加速,模型剪枝,参数量化等。
Table of Contents
-
网络结构加速
所谓网络结构,就是使用结构更简单的网络,例如适用于移动端的网络mobilenet和mobilenet2等。
在普通卷积神经网络的基础上,mobilenet使用了拆分“滑窗遍历”和“纵向channel”的方法来减少模型参数量。
例:
普通卷积操作:5*5*3的卷积核去扫略9*9*3的特征向量时,一个卷积核的参数量应该是5*5*3(channel深度方向需要乘3),如果使用10个不同的卷积核,参数总量为:5*5*3*10 = 750
mobilenet:对于9*9*3的特征向量,分别使用3个5*5的卷积核去卷积每一个channel,得到3个channel的特征向量,再用10个1*1*3的卷积核去卷积得到的特征向量来卷积获取深度方向的关联,同时同样得到10个channel的特征向量(和stride和padding无关),不过这样拆分的过程使用的参数总量为:5*5*3+1*1*3*10 = 105,参数缩减了7倍多。
-
模型推理加速
NVIDIA推出的TensorRT工