【问题标题】:What are the reasons to use MonitoredTrainingSession vs Estimator in TensorFlow在 TensorFlow 中使用 MonitoredTrainingSession 与 Estimator 的原因是什么
【发布时间】:2023-03-28 09:47:01
【问题描述】:

我看到很多使用MonitoredTrainingSessiontf.Estimator 作为训练框架的例子。但是,尚不清楚为什么我会使用其中一个。两者都可以使用SessionRunHooks 进行配置。两者都与tf.data.Dataset 迭代器集成,并且可以提供训练/验证数据集。我不确定一种设置有什么好处。

【问题讨论】:

    标签: python tensorflow machine-learning tensorflow-estimator


    【解决方案1】:

    简短的回答是 MonitoredTrainingSession 允许用户访问 Graph 和 Session 对象以及训练循环,而 Estimator 向用户隐藏图形和会话的详细信息,通常可以更轻松地运行训练,尤其是,如果您需要定期评估,请使用train_and_evaluate

    MonitoredTrainingSession 与普通的 tf.Session() 不同之处在于它处理变量初始化、设置文件编写器以及包含分布式训练的功能。

    另一方面,Estimator API 是一个高级构造,就像Keras。在示例中可能使用较少,因为它是稍后介绍的。它还允许使用DistibutedStrategy 分发训练/评估,并且它有几个允许快速原型制作的罐装估计器。

    在模型定义方面,它们非常相似,都允许使用keras.layers,或者从头开始定义完全自定义的模型。因此,如果出于某种原因,您需要访问图形构造或自定义训练循环,请使用MonitoredTrainingSession。如果您只想定义模型、训练模型、运行验证和预测,而不需要额外的复杂性和样板代码,请使用 Estimator

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-13
      • 2017-04-10
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2021-10-27
      相关资源
      最近更新 更多