python - 在 TensorFlow 中使用 MonitoredTrainingSession 与 Estimator 的原因是什么

标签 python tensorflow machine-learning tensorflow-estimator

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

最佳答案

简短的回答是,MonitoredTrainingSession 允许用户访问图形和 session 对象以及训练循环,而 Estimator 向用户隐藏图形和 session 的详细信息,并且通常,可以更轻松地进行训练,尤其是在您需要定期评估时使用 train_and_evaluate

MonitoredTrainingSession 与普通 tf.Session() 的不同之处在于它处理变量初始化、设置文件编写器,并且还合并了分布式训练的功能。

另一方面,

Estimator API 是一个高级构造,就像 Keras 一样。由于是后来引入的,所以在示例中可能用得较少。它还允许使用 DistibutedStrategy 分发训练/评估,并且它有几个允许快速原型(prototype)设计的预设估算器。

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

关于python - 在 TensorFlow 中使用 MonitoredTrainingSession 与 Estimator 的原因是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252406/

相关文章:

python - 删除 tf.dataset 管道中输入字符串的重音

machine-learning - 使用 nolearn\lasagne 制作神经网络来绘制图像(又名 Google 的 inceptionism)

python - 在 Pandas 中读取文本文件时的左贪婪与右贪婪列分配

Python - 调用直到我得到返回值?

tensorflow - 使用数据集时在 OutOfRangeError 后重置 Tensorflow 图

python - Caffe 和 TensorFlow Protobuf - 维护不同的版本

python-3.x - 用python进行图像膨胀

python - 人工神经网络预测出错

python - 更改 3D 图形颜色 (matplotlib)

python - 删除重复超过 3 次的值,除了 Pandas DataFrame 中的第一个