美文网首页
Pytorch: 网络模型参数量统计工具thop

Pytorch: 网络模型参数量统计工具thop

作者: Gavin先生 | 来源:发表于2022-05-05 18:07 被阅读0次

    安装⽅式:

    '''

    pip install thop

    '''

    使⽤⽅法,话不多说,直接上代码。

    '''

    import torch

    from torchvision import models

    from thop import profile

    model = models.densenet121()

    input = torch.randn(1,3,224,224)

    flops, params =profile(model, inputs=(input,))

    '''

    运⾏的最终结果为模型的计算量和参数量——评价模型压缩⽅法的重要指标。

    Flops of DenseNet-121 is 2913996800.0

    Parameters of DenseNet-121 is 7978856.0

    当然,也可以添加⾃⼰定义的⽹络模块,前提是你知道参数量和计算量计算的⽅法。

    class YourModule(nn.Module):

    # your definition

    def count_your_model(model, x, y):

    # your rule here

    input = torch.randn(1,3,224,224)

    flops, params =profile(model, inputs=(input,),

    custom_ops={YourModule: count_your_model})

    模型压缩评价指标

    模型压缩将会是⼤数据任务(Big Data)的⼀种常⽤⼿段,所要解决的问题就是庞⼤的模型与有限的计算资源之间的⽭盾。官⽅措辞“在过去的⼏年中,我们见证了(卷积)神经⽹络在xxx领域所取得的成功。”精⼼设计的⽹络结构功不可没,但很⼤程度上还是得益于⽹络的加深、加⼤。这就导致了⽹络的参数量暴增,为训练和应⽤带来挑战。模型训练可以使⽤更多的GPU($$$↑↑),但是在应⽤场景下就不⼀样了,受制于成本、体积、功耗等因素,有时候应⽤平台的硬件性能较差(算⼒低,带宽⼩,内存⼩),偏偏任务的实时性要求很⾼(如⼈脸识别)。既然硬件资源受限,那么必然从模型的⾓度⼊⼿,减少模型参数量和计算量。

    参数量和计算量只是理论上的压缩⽐与加速⽐,具体的加速效果还要结合特定的硬件平台。值得注意的是,已经有模型压缩⽅向相关的论⽂开始以CPU时间作为加速效果的衡量指标。

    https://wk.baidu.com/view/731e2f10f211f18583d049649b6648d7c1c7089f

    相关文章

      网友评论

          本文标题:Pytorch: 网络模型参数量统计工具thop

          本文链接:https://www.haomeiwen.com/subject/slroyrtx.html