PyTorch `torch.no_grad` 与 `torch.inference_mode`

eft*_*mio 9 artificial-intelligence inference machine-learning gradient-descent pytorch

torch.inference_modePyTorch从 v1.9 开始具有新功能,“类似于 torch.no_grad……在这种模式下运行的代码通过禁用视图跟踪和版本计数器碰撞来获得更好的性能”。

如果我只是在测试时评估我的模型(即不是训练),是否存在torch.no_grad更好的情况torch.inference_mode?我计划用后者替换前者的每个实例,并且我希望使用运行时错误作为护栏(即我相信任何问题都会将其自身显示为运行时错误,并且如果它不作为运行时错误出现,那么我认为使用torch.inference_mode) 确实更好。

PyTorch 开发者播客中提到了有关为何开发推理模式的更多详细信息。

eft*_*mio 11

是的,torch.inference_mode确实比torch.no_grad推理模式不引发运行时错误的所有情况更可取。检查这里