Yolov5 计算访存量MAC与计算量FLOPS

本文介绍了如何在Yolov5中计算模型的访存量OMACS和FLOPS。首先,明确了计算量和访存量的公式。接着,详细讲述了在`torch_utils.py`和`profile.py`中修改代码的步骤,包括添加缓冲区、根据不同层类型选择合适的计算函数,以及计算整个模型的访存量和FLOPS。最后,文章提到了删除hook和返回结果的处理过程。
摘要由CSDN通过智能技术生成

说明:因为yolov5函数中已经计算了 FLOPS,因此如果想要计算访存量那么只需按照flops的位置,添加访存量的计算即可

一、先记住计算量和访存量的公式:

 二、找到计算FLOPS的位置,并添加访存量

yolov5中计算flops的位置在torch_utiles.py文件,model_info函数中,故”

1. 修改 torch_utiles.py

 2. 修改profile.py中的profile函数

​​​​​​​

profile 函数首先定义了一个 add_hooks,然后指令:model.apply(add_hooks) 先把这个hook挂起来,随后运行模型的时候才开始正式运行这个hook

2.1  hook 中的操作  --为每一层添加缓冲区并初始化

代码如下:

        m.register_buffer('total_kernel_macs',torch.zeros(1,dtype=torch.float64))
        m.register_buffer('total_output_macs',torch.zeros(1,dtype=torch.float64))

2.2  hook中的操作-

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>