insightface 里面的计算flops 的方法
在:
下面的flops_counter.py
python flops_counter.py 可以得到需要的flops

从代码上可以看到 计算两部分的flops
一部分是卷积的flops 另外一部分是fc 层的flops attr 表示有没有偏置
我们打印出来卷积里面的input_shape 和output_shape
cov层的flops 的计算公式为:

-1 是对于没有偏置的情况
kernel 一般是方形的 kernel[0] 和kernel[1] 是一样的
输入通道对应input_shape[1] 比如3 64 。。。。
输出通道为output_shape[1] 比如 64 128。。。。
def count_conv_flops(input_shape, output_shape, attr):
kernel = attr['kernel'][1:-1].split(',')
kernel = [int(x) for x in kernel]
#print('kernel', kernel)
if is_no_bias(attr

本文详细解析了InsightFace模型中计算FLOPs(浮点运算次数)的方法,包括卷积层和全连接层的FLOPs计算公式。通过分析输入输出shape及卷积核大小,提供了具体的计算流程,适用于理解深度学习模型的计算复杂度。
最低0.47元/天 解锁文章
1404

被折叠的 条评论
为什么被折叠?



