代码之家  ›  专栏  ›  技术社区  ›  Ze0ruso

做模型。eval()在代码中的位置有什么关系?

  •  0
  • Ze0ruso  · 技术社区  · 2 年前

    可能有点傻,但我需要确保这是正确的。我这样放置代码重要吗

    model.eval()
    with torch.no_grad():
    

    with torch.no_grad():
        model.eval()
    

    我只是想知道,因为我有一个有模型的函数。eval()在循环中,其中 with torch.no_grad(): 在它之前。。。

    2 回复  |  直到 2 年前
        1
  •  2
  •   Mohamed Fathallah    2 年前

    它们都是正确的,您只需要使用 model. eval() 在探索之前,

    不会引起您的问题,正在使用其评估统计信息

        2
  •  1
  •   candied_orange Elliott Frisch    2 年前

    model.eval() with 将尝试关闭 torch.no_grad() 在其作用域下引发异常时。