TensorFlow的许多示例应用程序都会创建Experiment
并通过调用Experiment
运行其中一个tf.contrib.data.learn_runner.run
方法。看起来Experiment
本质上是Estimator
的包装器。
创建和运行Experiment
所需的代码看起来比创建,训练和评估Estimator
所需的代码更复杂。我确信使用Experiment
有优势,但我无法弄清楚它是什么。有人能填补我吗?
答案 0 :(得分:6)
tf.contrib.learn.Experiment
是分布式培训的高级API。这是来自其文档:
实验是一个包含训练所需信息的类 模型。
创建实验后(通过传递Estimator和输入) 训练和评估),实验实例知道如何调用 训练和评估循环以合理的方式为分布式 训练强>
就像tf.estimator.Estimator
(以及派生类)是隐藏矩阵乘法,保存检查点等的高级API一样,tf.contrib.learn.Experiment
会尝试隐藏您需要的样板文件适用于distributed computation,即tf.train.ClusterSpec
,tf.train.Server
,工作,任务等。
您可以在没有tf.estimator.Estimator
的情况下在一台计算机上训练和评估Experiment
。请参阅this tutorial中的示例。