测试在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下使用批处理提升巨大,在必要的情况下可以考虑。