PyTorch从v1.9开始有了新的功能torch.inference_mode
,即“analogous totorch.no_grad
...在此模式下运行的代码通过禁用视图跟踪和版本计数器碰撞获得了更好的性能。”
如果我只是在测试时评估模型(即非训练),是否存在torch.no_grad
优于torch.inference_mode
的情况?我计划用后者替换前者的每个示例,并希望使用运行时错误作为防护(也就是说,我相信任何问题都会显示为运行时错误,如果它没有显示为运行时错误,那么我认为使用torch.inference_mode
确实更可取)。
有关开发推理模式的原因的更多详细信息,请参见the PyTorch Developer Podcast。
1条答案
按热度按时间k5hmc34c1#
是的,在推理模式不抛出运行时错误的所有情况下,
torch.inference_mode
确实优于torch.no_grad
。