当前位置: 首页 > article >正文

[pytorch]thop计算模型算力和参数量

从github官网上转载的:
Count the MACs / FLOPs of your PyTorch model.

THOP: PyTorch-OpCounter

How to install

pip install thop (now continously intergrated on Github actions)

OR

pip install --upgrade git+https://github.com/Lyken17/pytorch-OpCounter.git

How to use

  • Basic usage

    from torchvision.models import resnet50
    from thop import profile
    model = resnet50()
    input = torch.randn(1, 3, 224, 224)
    macs, params = profile(model, inputs=(input, ))
    
  • Define the rule for 3rd party module.

    class YourModule(nn.Module):
        # your definition
    def count_your_model(model, x, y):
        # your rule here
    
    input = torch.randn(1, 3, 224, 224)
    macs, params = profile(model, inputs=(input, ), 
                            custom_ops={YourModule: count_your_model})
    
  • Improve the output readability

    Call thop.clever_format to give a better format of the output.

    from thop import clever_format
    macs, params = clever_format([macs, params], "%.3f")
    

Results of Recent Models

The implementation are adapted from torchvision. Following results can be obtained using benchmark/evaluate_famous_models.py.

ModelParams(M)MACs(G)
alexnet61.100.77
vgg11132.867.74
vgg11_bn132.877.77
vgg13133.0511.44
vgg13_bn133.0511.49
vgg16138.3615.61
vgg16_bn138.3715.66
vgg19143.6719.77
vgg19_bn143.6819.83
resnet1811.691.82
resnet3421.803.68
resnet5025.564.14
resnet10144.557.87
resnet15260.1911.61
wide_resnet101_2126.8922.84
wide_resnet50_268.8811.46
ModelParams(M)MACs(G)
resnext50_32x4d25.034.29
resnext101_32x8d88.7916.54
densenet1217.982.90
densenet16128.687.85
densenet16914.153.44
densenet20120.014.39
squeezenet1_01.250.82
squeezenet1_11.240.35
mnasnet0_52.220.14
mnasnet0_753.170.24
mnasnet1_04.380.34
mnasnet1_36.280.53
mobilenet_v23.500.33
shufflenet_v2_x0_51.370.05
shufflenet_v2_x1_02.280.15
shufflenet_v2_x1_53.500.31
shufflenet_v2_x2_07.390.60
inception_v327.165.75

http://www.kler.cn/a/972.html

相关文章:

  • linux: 文本编辑器vim
  • 学习笔记-Kotlin
  • 算法妙妙屋-------2..回溯的奇妙律动
  • 服务器数据恢复—raid5故障导致上层ORACLE无法启动的数据恢复案例
  • fast-crud select下拉框 实现多选功能及下拉框数据动态获取(通过接口获取)
  • 国产3D CAD将逐步取代国外软件
  • 【深度解刨C语言】符号篇(全)
  • Spring Cloud(微服务)学习篇(五)
  • 【Linux】网络编程套接字(下)
  • 【Python入门第三十三天】Python 字符串格式化
  • 普通Java工程师 VS 优秀架构师
  • Docekr三剑客之 Docekr compose
  • python 内置函数和多线程
  • 手把手学会DFS (递归入门)
  • Python直接复制已有的venv虚拟环境以创建新的虚拟环境
  • 【巨人的肩膀】JAVA面试总结(六)
  • C++继承[万字详解]
  • new Function 得到的都是匿名函数,怎么得到一个具名函数对象?
  • TCP UDP详解
  • 【多微电网】含多微电网租赁共享储能的配电网博弈优化调度(Matlab代码实现)
  • [ 系统安全篇 ] window 命令禁用用户及解禁方法
  • 2023 最新发布超全的 Java 面试八股文,整整 1000道面试题,太全了
  • 你是真的“C”——指针进阶知识分享【上篇】
  • Android APP隐私合规检测工具Camille使用
  • 高压放大器在压电智能传感技术的钢结构监测研究中的应用
  • 【数据结构与算法】顺序表和链表