Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在TensorFlow中使用MonitoredTrainingSession vs Estimator的原因是什么_Python_Tensorflow_Machine Learning_Tensorflow Estimator - Fatal编程技术网

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