Tensorflow2.0 训练:model.compile vs GradientTape

pic*_*olo 4 python tensorflow tf.keras tensorflow2.0

我开始学习 Tensorflow2.0,我困惑的一个主要来源是何时使用类keras model.compiletf.GradientTape训练模型。

在 MNIST 分类的 Tensorflow2.0 教程中,他们训练了两个相似的模型。其中与model.compile其他用tf.GradientTape

抱歉,如果这是微不足道的,但你什么时候使用一个?

xdu*_*ch0 5

这确实是一个特定于案例的事情,在这里很难给出明确的答案(它可能与“过于基于意见”接壤)。但总的来说,我会说

  • “经典” Keras接口(使用compilefit等等)可以快速,方便的建设,标准模型的训练和评估。然而,它是非常高级/抽象的,因此不会给你太多的低级控制。如果您正在实现具有非平凡控制流的模型,这可能很难适应。
  • GradientTape为您提供对训练/运行模型的所有方面的完全低级控制,允许更轻松的调试以及更复杂的架构等,但您将需要为compiled模型隐藏的许多内容编写更多样板代码(例如训练循环)。尽管如此,如果你在深度学习方面进行研究,你可能大部分时间都在这个级别上工作。