我开始学习Tensorflow2.0,而困惑的一个主要来源是何时使用类似 keras的 model.compile
与tf.GradientTape
来训练模型。< / p>
在Tensorflow2.0 MNIST分类教程上,他们训练了两个相似的模型。 One with model.compile
和other with tf.GradientTape
。
很抱歉,这很简单,但是什么时候使用另一个?
答案 0 :(得分:3)
这确实是一个特定案例,很难在这里给出明确的答案(它可能会基于“基于观点的观点”。)但是总的来说,我会说
compile
,fit
等)允许快速,轻松地构建,训练和评估标准模型。但是,它是非常高级/抽象的,因此不会给您太多低级控制。如果您要实现具有非平凡控制流的模型,则可能难以适应。GradientTape
为您提供了对训练/运行模型的各个方面的完全低级控制,从而使调试更容易,架构更复杂等,但是您将需要为许多事情编写更多的样板代码compiled
模型将对您隐藏(例如,训练循环)。不过,如果您进行深度学习的研究,那么大多数时候您可能会一直在这个级别上工作。