方法一:使用thop包的profile方法
import torch
from thop import profile
from torchvision import models
model = models.resnet50(pretrained=False)
img = torch.zeros((1, 3, image_height, image_width))
flops, params = profile(model, inputs=(img,), verbose=False)
resnet50的输出结果
thop result Params: 25.56M, Gflops: 4111514624.00
方法二:使用torchsummaryX的summary方法
import torch
from torchsummaryX import summary
from torchvision import models
model = models.resnet50(pretrained=False)
img = torch.zeros((1, 3, stride, stride), device=next(model.parameters()).device)
summary(model,img)
使用summary会输出三项:
- 每一层的参数的维度及数据尺寸,
- 每层的参数量及计算量
- 模型总的参数量及计算量
使用两种方式计算的参数量和计算量有一点区别