Python 在TensorFlow中使用MonitoredTrainingSession vs Estimator的原因是什么
我看到许多例子都使用Python 在TensorFlow中使用MonitoredTrainingSession vs Estimator的原因是什么,python,tensorflow,machine-learning,tensorflow-estimator,Python,Tensorflow,Machine Learning,Tensorflow Estimator,我看到许多例子都使用MonitoredTrainingSession或tf.Estimator作为培训框架。然而,我不清楚为什么我会使用一个而不是另一个。两者都可以通过SessionRunHooks配置。两者都与tf.data.Dataset迭代器集成,并可以为训练/val数据集提供数据。我不确定一个设置的好处是什么。简单的回答是,监控培训会话允许用户访问图形和会话对象以及培训循环,而估计器对用户隐藏图形和会话的细节,并且通常更容易运行培训,尤其是,如果需要定期评估,请使用训练和评估 Monit
MonitoredTrainingSession
或tf.Estimator
作为培训框架。然而,我不清楚为什么我会使用一个而不是另一个。两者都可以通过SessionRunHooks
配置。两者都与tf.data.Dataset
迭代器集成,并可以为训练/val数据集提供数据。我不确定一个设置的好处是什么。简单的回答是,监控培训会话
允许用户访问图形和会话对象以及培训循环,而估计器
对用户隐藏图形和会话的细节,并且通常更容易运行培训,尤其是,如果需要定期评估,请使用训练和评估
MonitoredTrainingSession
不同于普通的tf.Session(),它处理变量初始化、设置文件编写器,还集成了分布式培训的功能
另一方面,Estimator API
,是一个类似于Keras
的高级构造。在示例中可能使用较少,因为它是在后面介绍的。它还允许使用分布式策略
分发培训/评估,并且它有几个可以快速原型化的固定估计器
就模型定义而言,它们相当相等,都允许使用keras.layers
,或者从头定义完全自定义的模型。因此,如果出于任何原因,您需要访问图形构造或自定义训练循环,请使用MonitoredTrainingSession
。如果您只想定义模型、训练模型、运行验证和预测,而不需要额外的复杂性和样板代码,请使用Estimator
简而言之,MonitoredTrainingSession
允许用户访问图形和会话对象,以及训练循环,而Estimator
会向用户隐藏图表和会话的详细信息,并且通常会使运行培训变得更容易,特别是在需要定期评估的情况下,使用train\u和\u evaluate
MonitoredTrainingSession
不同于普通的tf.Session(),它处理变量初始化、设置文件编写器,还集成了分布式培训的功能
另一方面,Estimator API
,是一个类似于Keras
的高级构造。在示例中可能使用较少,因为它是在后面介绍的。它还允许使用分布式策略
分发培训/评估,并且它有几个可以快速原型化的固定估计器
就模型定义而言,它们相当相等,都允许使用keras.layers
,或者从头定义完全自定义的模型。因此,如果出于任何原因,您需要访问图形构造或自定义训练循环,请使用MonitoredTrainingSession
。如果您只想定义模型、训练模型、运行验证和预测,而不需要额外的复杂性和样板代码,请使用Estimator