测试在cpu下一次预测一个图片和一次预测两个消耗时间的对比。
实验中有两个模型,也就是说每个预测里面预测了两次。
实验部分代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24async def predictHandler3():
global pic_dict,pic_dict_res
keylist = list(pic_dict.keys())
keylist2=list(pic_dict.keys())*2
print("keylist",keylist)
print("keylist2",keylist2)
time1 = time.time()
img = [transform(pic_dict[_]).numpy().tolist() for _ in keylist]
img = torch.FloatTensor(img).cpu()
with torch.no_grad():
outputs1 = palmmodel(img)
outputs2 = handmodel(img)
time2 = time.time()
print(time2-time1)
time3 = time.time()
img = [transform(pic_dict[_]).numpy().tolist() for _ in keylist2]
img = torch.FloatTensor(img).cpu()
with torch.no_grad():
outputs1 = palmmodel(img)
outputs2 = handmodel(img)
time4 = time.time()
print(time4-time3)
然而在gpu上则快非常多。
结论
在cpu下进行推理不用考虑使用批处理。
在gpu下使用批处理提升巨大,在必要的情况下可以考虑。