我想训练一个模特。每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,但这是一个全局变量,我不喜欢它,因为我的代码变得不那么重复了。
答案 0 :(得分:1)
是的,你需要两张图。这些图可以共享变量。这可以通过以下方式完成:
tf.contrib.keras
),您可以使用它来定义模型并使用它来计算两个推理图tf.layers
)与tf.get_variable
一起使用并重复使用tf.make_template
创建自己的类似模型的对象,可以调用一次构建训练图,一次构建推理图tf.estimator.Estimator
可以让您定义模型功能一次并自动运行以进行培训和评估还有其他选项,但其中任何一个都得到了很好的支持,应该取消阻止你。