一、常用名字
中文名字 英文名字 简称 单位
模型参数量 number of parameters. param. (单位B M)
计算复杂度 computational complexity MACs (单位 GMac)
延迟/速度/每秒帧数 latency/speed/FPS latency/speed/FPS (单位s/FPS)
二、 ptflops库 使用方法
工具地址:
https://github.com/sovrasov/flops-counter.pytorch
1 安装 pip install ptflops
2 使用范例
3 分割算法上的使用范例
from ptflops import get_model_complexity_info # todo
import time # todo
class Test(object):
def __init__(self, Dataset, Network, path):
## dataset
self.cfg = Dataset.Config(datapath=path, snapshot='./out/model-45', mode='test')
self.data = Dataset.Data(self.cfg)
self.loader = DataLoader(self.data, batch_size=1, shuffle=False, num_workers=8)
## network
self.net = Network(self.cfg)
self.net.train(False)
self.net.cuda()
with torch.cuda.device(0): # todo 1
net = Network(self.cfg)
macs, params = get_model_complexity_info(net, (3, 320, 320), as_strings=True, print_per_layer_stat=True, verbose=True)
print('{:<30} {:<8}'.format('Computational complexity: ', macs))
print('{:<30} {:<8}'.format('Number of parameters: ', params))
注意:计算复杂度MACs、模型参数Param跟输入图像尺寸无关,速度FPS跟图像尺寸有关
(320x320时是17.52, 224x224时是17.52)
关键代码:
get_model_complexity_info(net, (3, 320, 320), as_strings=True, print_per_layer_stat=True, verbose=True)
参数说明:
net是实力化代码
(3, 320, 320)是输入尺寸
输出结果展示:
三、ptflops库 解释说明
from ptflops import get_model_complexity_info
第二部分