【问题标题】:Still confused about model.train()仍然对 model.train() 感到困惑
【发布时间】:2020-12-12 00:21:22
【问题描述】:

我在这里阅读了有关model.train() 的所有帖子,但仍然不明白它是怎么回事。具体来说,当我使用像 DenseNet 或 VGG 这样的预训练模型时,所有参数都冻结在最后一层旁边,不使用 drop-out 或 Batch Normalization,使用 model.train() 时训练损失开始时要小得多,但随后会减少与没有它时的速率相同。 为什么?

【问题讨论】:

    标签: deep-learning neural-network pytorch torchvision


    【解决方案1】:

    只有三个选项:model(inputs)、model.train()(inputs) 和 model.eval()(inputs)。唯一的区别是,当使用 .eval() 时,所有的 dropout 和归一化都被忽略了,因为它只用于训练而不是用于测试。

    现在你问为什么只使用model(inputs) 时它还在训练?因为当您不使用train() 或eval() 时,模型将自动处于训练模式。所以model(inputs) 和model.train()(inputs) 是一样的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2015-08-04
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多