Tom*_*ale 8 machine-learning deep-learning pytorch autograd
当我想在验证集上评估模型的性能时,最好使用:
with torch.no_grad:要么
model.eval()Tom*_*ale 12
使用这两种。他们做不同的事情,并且有不同的范围。
with torch.no_grad-禁用跟踪中的渐变autograd。model.eval()更改forward()被调用模块的行为
with torch.no_grad禁用[原文]梯度计算的上下文管理器。
当您确定不会调用时,禁用梯度计算对于推断很有用
Tensor.backward()。它将减少原本会具有的计算的内存消耗requires_grad=True。在这种模式下,requires_grad=False即使输入具有,每次计算的结果也将具有requires_grad=True。
model.eval()将模块设置为评估模式。
这仅对某些模块有影响。见特定模块的单证在培训/评估模式及其行为的详细信息,如果他们受到影响,例如
Dropout,BatchNorm等等。
pytorch的创建者说,应该对文档进行更新以建议两者的用法。
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |