一、FPS(每秒传输帧数-Frames Per Second)
FPS就是目标网络每秒可以处理(检测)多少帧(多少张图片),FPS简单来理解就是图像的刷新频率,也就是每秒多少帧,假设目标检测网络处理1帧要0.02s,此时FPS就是1/0.02=50
其中Processing time per frame代表每帧处理时间。
二、代码
import time
import torch
import numpy as np
from torchvision import models
#------------------------------------------------------------------#
# 定义模型
#------------------------------------------------------------------#
net = models.shufflenet_v2_x0_5(pretrained=True)
net.eval()
#------------------------------------------------------------------#
# 定义输入
#------------------------------------------------------------------#
x = torch.zeros((1,3,320,320))
#------------------------------------------------------------------#
# 计算推理100张图片的帧率
#------------------------------------------------------------------#
t_all = []
for i in range(100):
t1 = time.time()
y = net(x)
t2 = time.time()
t_all.append(t2 - t1)
#------------------------------------------------------------------#
# 打印帧率
#------------------------------------------------------------------#
print('平均推理时间:', np.mean(t_all))
print('平均推理帧率:',1 / np.mean(t_all))
print('最快推理时间:', min(t_all))
print('最快推理帧率:',1 / min(t_all))
print('最慢推理时间:', max(t_all))
print('最慢推理帧率:',1 / max(t_all))
运行结果