zoukankan      html  css  js  c++  java
  • python----------->>>>>>>>>>>>统计caffe模型的模型参数量

    #统计caffe算模型的参数量
    from numpy import prod, sum
    flops = 0
    typenames = ['Convolution', 'BatchNorm']
    for layer_name, blob in net.blobs.iteritems():
        if layer_name not in net.layer_dict:
            continue
        if net.layer_dict[layer_name].type in typenames:
            cur_flops = 0.0
            if net.layer_dict[layer_name].type in typenames[:2]:
                cur_flops = (np.product(net.params[layer_name][0].data.shape) * 
                        blob.data.shape[-1] * blob.data.shape[-2])
            else:
                cur_flops = np.product(net.params[layer_name][0].data.shape)
            print(layer_name.ljust(20),
                    str(net.params[layer_name][0].data.shape).ljust(20),
                    str(blob.data.shape).ljust(20),
                    net.layer_dict[layer_name].type.ljust(20), str(cur_flops).ljust(20))
            # InnerProduct
            if len(blob.data.shape) == 2:
                flops += prod(net.params[layer_name][0].data.shape)
            else:
                flops += prod(net.params[layer_name][0].data.shape) * blob.data.shape[2] * blob.data.shape[3]
    
    print ('layers num: ' + str(len(net.params.items())))
    print ("Total number of parameters: " + str(sum([prod(v[0].data.shape) for k, v in net.params.items()])))
    print ("Total number of flops: " + str(flops))
    

      

  • 相关阅读:
    Android 存储 SD卡
    Android 存储 内部存储
    Android 存储 SP存储
    go goroutine
    go 接收命令行参数
    go 文件操作 复制和统计字符
    go 文件操作 判断文件是否存在
    換博客了,新地址https://cutepig123.github.io/
    光盘是个好东西
    俺买过的电子产品
  • 原文地址:https://www.cnblogs.com/shuimuqingyang/p/14548196.html
Copyright © 2011-2022 走看看