相关疑难解决方法(0)

用tf.estimator提早停止,怎么样?

tf.estimator在TensorFlow 1.4中使用tf.estimator.train_and_evaluate它很棒,但我需要提前停止.添加它的首选方法是什么?

我认为这有一些tf.train.SessionRunHook地方.我看到有一个旧的contrib包ValidationMonitor似乎提前停止了,但它似乎不再是1.4了.或者未来的首选方式是依靠tf.keras(早期停止真的很容易)而不是tf.estimator/tf.layers/tf.data,或许?

python neural-network keras tensorflow tensorflow-estimator

20
推荐指数
1
解决办法
8880
查看次数

Estimator培训期间的验证

使用TensorFlow r1.3监视器已弃用:

"2016-12-05","监视器已被弃用.请使用tf.train.SessionRunHook.")和Estimator.train(input_fn,hooks,..)仅适用于挂钩.

如何使用钩子实现验证监视器的功能?

tensorflow

12
推荐指数
1
解决办法
5668
查看次数

Tensorflow v1.10 +为什么在没有它的情况下制作检查点时需要输入服务接收器功能?

我正在调整我的模型到TensorFlow的估算器API.

我最近根据验证数据询问了一个关于提前停止的问题,除了早期停止之外,还应该导出此时的最佳模型.

似乎我对模型导出是什么以及检查点是什么的理解并不完整.

检查点自动生成.根据我的理解,检查点足以使估算器开始"温暖" - 在错误之前使用每个训练过的重量或重量(例如,如果您经历了停电).

检查点的好处在于除了自定义估算器(即input_fnmodel_fn)所需的代码之外,我不必编写任何代码.

虽然给定一个初始化的估算器,人们可以调用它的train方法来训练模型,但实际上这种方法相当乏味.通常人们想做几件事:

  1. 定期将网络与验证数据集进行比较,以确保您不会过度拟合
  2. 如果发生过度配合,请尽早停止训练
  3. 在网络完成时保存最佳模型(通过达到指定数量的训练步骤或通过早期停止标准).

对于那些刚接触"高级"估算器API的人来说,似乎需要许多低级别的专业知识(例如,对于input_fn),如何让估算器做到这一点并不是直截了当的.

通过一些轻量代码,可以通过使用和使用来实现#1的重做.tf.estimator.TrainSpectf.estimator.EvalSpectf.estimator.train_and_evaluate

在上一个问题中,用户@GPhilo阐明了如何通过使用以下的半不直观函数来实现#2tf.contrib:

tf.contrib.estimator.stop_if_no_decrease_hook(my_estimator,'my_metric_to_monitor', 10000)
Run Code Online (Sandbox Code Playgroud)

(不直观的是"早期停止不是根据非改进评估的数量触发,而是根据特定步骤范围内的非改善性逃避的数量").

@GPhilo - 注意它与#2无关- 也回答了如何做#3(根据原始帖子的要求).然而,我不明白input_serving_fn它是什么,为什么需要它,或者如何制造它.

这使我更加困惑,因为不需要这样的功能来制作检查点,或者估计器从检查点开始"热".

所以我的问题是:

  • 检查点和导出的最佳模型之间有什么区别?
  • 什么是服务输入接收器功能以及如何写一个?(我花了一些时间阅读tensorflow文档并且发现它不足以理解我应该如何写一个,以及我为什么要写一个).
  • 如何训练我的估算器,保存最佳模型,然后加载它.

为了帮助回答我的问题,我提供了这份Colab文件.

这个自包含的笔记本生成一些虚拟数据,将其保存在TF记录中,有一个非常简单的自定义估算器,model_fninput_fn使用TF记录文件训练此模型.因此,有人向我解释我需要为输入服务接收器功能制作什么占位符以及如何完成#3.

更新

@GPhilo最重要的是我不能低估我对你的帮助,包括帮助我(并希望其他人)理解这件事.

我的"目标"(激励我提出这个问题)是尝试建立一个可重复使用的培训网络框架,这样我就可以通过不同的方式build_fn去(加上具有出口模型的生活质量,提前停止等).

更新(基于您的答案)Colab 可以在这里找到.

经过几次你的回答,我发现现在有些困惑:

1.

您为推理模型提供输入的方式与您用于培训的方式不同 …

python tensorflow

7
推荐指数
1
解决办法
1128
查看次数