最近在处理 模型计算量 模型参数量 问题时发现python内部可以将函数作为参数传递,坦白来说这是一种比较新颖的计算方法。 ptflops 作为一种常用的模型参数量计算手段,在深度学习模型中使用范围广泛;之前在使用过程中发现模型多输入的情况下函数会报错。后面我这边是直接改动了源代码将input_res给更改为支持list输入的函数类型。 实际上文章支持多输入,只是需要借用input_constructo,input_constructor可以作为变量或者函数整个的作为参数传递进入来对input_res解析,在本例中input_constructor就可以直接设置为true,则即可进行下一步的处理、
python调用函数的实例可以参考以下的代码块,即可以将函数作为参数在内部进行传递:
def convert(func,seq):
'conv. sequence of numbers to same type'
return [func(eachNum) for eachNum in seq]
myseq = (123,45.67,-6.2e8,999999999L)
print (convert(int,myseq))
print (convert(long,myseq))
print (convert(float,myseq))
|