NetEase-GameAI / Face2FaceRHO

The Official PyTorch Implementation for Face2Face^ρ (ECCV2022)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

模型推理耗时较长?

shuishiwojiade opened this issue · comments

感谢你的开源。
我在P40显卡上运行单张图片的重演测试,只记录了驱动图片的计算耗时,如下所示:
-> 1.1 驱动图片Fitting时的DECA数据读入耗时: 1.7801 second
-> 1. 驱动图片总的Fitting耗时: 1.8205 second
-> 2.1 Motion Field的计算耗时: 0.1119 second
-> 3.3 rendering_net耗时: 0.3678 second
-> 3. reenactment总耗时: 0.4834 second
驱动图片相关计算的总耗时:1.8205 + 0.1119 + 0.3678 + 0.4834 = 2.7836秒
请问这个是什么原因呢,除Fitting部分外的其他代码和论文中一致么?

1.除fitting部分跟论文里面的描述是一样的
2.推理部分耗时仅包括face2face_rho_model里面的reenactment过程,其他的部分都可以离线算好
3.时间测试需要使用半精度模式
4.测试时不要仅测一次,而是要多次的平均(最好前面加一个warm up的过程),另外要加上torch.cuda.synchronize()
5.P40我没有测过应该是比2080Ti要慢一些,但绝对不会慢这么多

  1. 已按照你的建议修改了代码,只计算了reenactment的平均耗时,warm up 100次,耗时测试900次,平均后47毫秒(FP16),后续有RTX2080TI显卡后我再试试。

  2. 请问你说的这个方案怎么用在实时重演应用上啊?
    “推理部分耗时仅包括face2face_rho_model里面的reenactment过程,其他的部分都可以离线算好”
    用一个进程做Fitting并保存结果,用另一个进程读结果后调用face2face_rho_model里的reenactment么?

哦哦 fitting部分在推理的时候是要做的,我前面的意思是因为我这个fitting的过程用的是DECA的方法,不是我们论文里面真正用的方法,所以速度会比较慢。您说的那种策略当然可以,但我们实际部署的时候还是串行的来的