未完成 如何计算lstm网络的复杂度 乘法次数 flops

计算算法复杂度的一种方法是计算前向算法的乘法次数,因此在这篇文章中计算复杂度的方法是计算lstm网络的乘法运算次数
首先要弄清楚lstm的cell中的乘法次数
cell有4个输入,一个输出
有三个门,input gate控制数据输不输进来,不输入就输入0
gate控制保存单元 cell更不更新,不更新就维持原状
gate控制计算的值输不输出,不输出就输出0

未完成  如何计算lstm网络的复杂度 乘法次数 flops

文章插图
举例
x是input y是
lstm的cell有4个input,就是矢量x+bias,乘上,求和
未完成  如何计算lstm网络的复杂度 乘法次数 flops

文章插图
以信号处理为例,batch为1,全部省略,此时的x大小[1,Nv]
接下来是用别人写好的库计算,用的是
- /-: Count the MACs / FLOPs of yourmodel.
按照上的提示
pip install thop
【未完成如何计算lstm网络的复杂度 乘法次数 flops】然后就可以运行下面的例子了