背景

使用pytorch在模型做推断时,使用torch.no_grad()与.forward()都可以得到正确的预测结果,如下:
torch.no_grad()与.forward()在预测时的性能差异我好奇想知道这两种推断方式那种,那种效率更高,于是随手做个测试。

测试

输入一张图片,然后推断10000次,看下两种方式各用多少时间:
torch.no_grad()与.forward()在预测时的性能差异

  1. torch.no_grad():
    torch.no_grad()与.forward()在预测时的性能差异

  2. .forward:
    torch.no_grad()与.forward()在预测时的性能差异

结论

我原本以为这两种方式推断效率应该是差不多的,但测试结果告诉我,使用torch.no_grad()这种方式要比.forward()这种方式效率高不少,而且处理任务越多,性能的差距越大,也难怪官方是也是鼓励使用torch.no_grad()这种方式来进行推断预测。

相关文章:

  • 2021-07-31
  • 2022-12-23
  • 2022-12-23
  • 2021-07-18
  • 2021-12-15
  • 2021-06-21
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-16
  • 2022-12-23
  • 2022-12-23
  • 2022-01-09
  • 2022-01-06
相关资源
相似解决方案