参考链接:https://blog.csdn.net/qq_40507857/article/details/118764782
1、含义
计算量是时间复杂度(计算量)–跑一次时间的长短–gpu运算能力,同一个网络显卡越牛逼,跑的越快;输入越小,跑的越快。
参数量是空间复杂度(参数量)–占用显存的量–显存大小
2、计算量(FLOPs)和参数量(Params)
2.1、单位
计算量:FLOPs,FLOP时指浮点运算次数,s是指秒,即每秒浮点运算次数。
参数量:是指网络模型中需要训练的参数总数。
2.2 代码实现
import torch
import torchvision
# thop库查看flops和params
from thop import profile
if __name__ == '__main__':
input = torch.rand(1, 128, 64, 64)
model = torchvision.models.alexnet(pretrained=False)
out = model(input)
flops, params = profile(model, (input,))
print('flops: ', flops, 'params: ', params)
print('flops: %.2f M, params: %.2f M' % (flops / 1000000.0, params / 1000000.0))
3、输入tensor大小对flops和params的影响
显而易见,
训练的参数权重肯定是不变的,因为网络没变,即params不变。
tensor越大,计算量越大是肯定的。