如何构建用于测试集的训练和评估模型

时间:2017-04-27 00:08:59

标签: tensorflow

我想训练一个模特。每1000个步骤,我想在测试集上评估它并将其写入tensorboard日志。但是,这是一个问题。我有这样的代码:

MATCH (n:User)
RETURN n, SIZE((n)<-[:RATED]-()) as rating_count
ORDER BY rating_count limit 1

其中模型推断声明模型中的变量。但是,这是一个问题。对于测试集,我有一个单独的队列,我不能用tensorflow将一个队列换成另一个队列。

目前,我通过创建2个图表解决了这个问题,一个用于培训,另一个用于测试。我用tf.train.Saver从一张图复制到另一张图。另一个解决方案可能是使用tf.get_variable,但这是一个全局变量,我不喜欢它,因为我的代码变得不那么重复了。

1 个答案:

答案 0 :(得分:1)

是的,你需要两张图。这些图可以共享变量。这可以通过以下方式完成:

  1. 使用Keras图层(来自tf.contrib.keras),您可以使用它来定义模型并使用它来计算两个推理图
  2. 将苗条式图层(来自tf.layers)与tf.get_variable一起使用并重复使用
  3. 使用tf.make_template创建自己的类似模型的对象,可以调用一次构建训练图,一次构建推理图
  4. 使用tf.estimator.Estimator可以让您定义模型功能一次并自动运行以进行培训和评估
  5. 还有其他选项,但其中任何一个都得到了很好的支持,应该取消阻止你。